openai 3.35.0
- Source
- https://github.com/openai/openai-python
- Tag scanned
v3.35.0- Compared with
v3.34.0(0 signals introduced since)- Files
- 2463 scanned, 37 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 110 info
- Scan time
- 42.4 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 61 of 61 warn and critical signals; 61 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-18 21:42
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
data:dismissed Long YAML line containing a sample transcript streaming event with logprobs.Reasoning
A long line holding a JSON-encoded transcript event with token logprob data. This is ordinary API example payload in an OpenAPI spec, and the raw long-line signal has a high false-positive rate.
-
-d '{"name":"gpt-6-astra","data_source":{"type":"completions","input_messages":{"type":"template","template":[{"role":"developer","content":"Categorize a given news headline into one of the following topics: Technology, Markets, World, Business, or Sports.\n\n# Steps\n\n1. Analyze the content of the new -
python: "from openai import OpenAI\nfrom openai.types.fine_tuning import ReinforcementMethod, ReinforcementHyperparameters\nfrom openai.types.graders import StringCheckGrader\n\nclient = OpenAI()\n\nclient.fine_tuning.jobs.create(\n training_file=\"file-abc\",\n validation_file=\"file-123\",\n model=\"o4 -
description: Group the costs by the specified fields. Supported fields include `project_id`, `user_id`, `line_item`, `api_key_id`, and `api_source`. Support for combining `user_id` with `project_id` grouping or the `project_ids` filter depends on the organization and requested time range. Unsupported combinatio -
response: "{\n \"id\": \"sess_001\",\n \"object\": \"realtime.session\",\n \"model\": \"gpt-realtime-2025-08-25\",\n \"modalities\": [\"audio\", \"text\"],\n \"instructions\": \"You are a friendly assistant.\",\n \"voice\": \"alloy\",\n \"input_audio_format\": \"pcm16\",\n \"output_audio_format\": \"p -
description: "Create an ephemeral API token for use in client-side applications with the\nRealtime API specifically for realtime transcriptions. \nCan be configured with the same session parameters as the `transcription_session.update` client event.\n\nIt responds with a session object, plus a `client_secret` key -
"text": "The file seems to contain excerpts from a letter to the shareholders of Berkshire Hathaway Inc., likely written by Warren Buffett. It covers several topics:\n\n1. **Communication Philosophy**: Buffett emphasizes the importance of transparency and candidness in reporting mistakes and succedismissed Long YAML example string with a sample model completion text.Reasoning
A long string value holding an example model response about a shareholder letter. This is documentation example text in an API spec, with no code or encoding involved.
-
data: -
"text": "The file seems to contain excerpts from a letter to the shareholders of Berkshire Hathaway Inc., likely written by Warren Buffett. It covers several topics:\n\n1. **Communication Philosophy**: Buffett emphasizes the importance of transparency and candidness in reporting mistakes and succedismissed Duplicate long YAML example completion text.Reasoning
This is the same example text as the earlier finding, repeated in another spec location. It is benign documentation content.
-
**Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also not -
Accepts a JSON object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](https://platform.openai.com/tokenizer?view=bpe) to convert text to token IDs. Mathematically, the bias is added to the logits generated by -
Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (8192 tokens for all embedding models), cannot be an empty string, and any array must be -
description: The size of the generated images. Defaults to `auto`. For `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example -
description: The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`. Width a -
description: 'The voice to use when generating the audio. Supported built-in voices are `alloy`, `ash`, `ballad`, `coral`, `echo`, `fable`, `onyx`, `nova`, `sage`, `shimmer`, `verse`, `marin`, and `cedar`. You may also provide a custom voice object with an `id`, for example `{ "id": "voice_1234" }`. Previews -
description: The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`. Width a -
description: The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`. Width a -
description: "Send this event to truncate a previous assistant message’s audio. The server \nwill produce audio faster than realtime, so this event is useful when the user \ninterrupts to truncate audio that has already been sent to the client but not \nyet played. This will synchronize the server's understandi -
description: "Send this event to append audio bytes to the input audio buffer. The audio \nbuffer is temporary storage you can write to and later commit. In Server VAD \nmode, the audio buffer is used to detect speech and the server will decide \nwhen to commit. When Server VAD is disabled, you must commit the au -
description: "Send this event to commit the user input audio buffer, which will create a \nnew user message item in the conversation. This event will produce an error \nif the input audio buffer is empty. When in Server VAD mode, the client does \nnot need to send this event, the server will commit the audio buff -
description: "This event instructs the server to create a Response, which means triggering \nmodel inference. When in Server VAD mode, the server will create Responses \nautomatically.\n\nA Response will include at least one Item, and may have two, in which case \nthe second will be a function call. These Items w -
description: "The default system instructions (i.e. system message) prepended to model \ncalls. This field allows the client to guide the model on desired \nresponses. The model can be instructed on response content and format, \n(e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good \ -
description: "Sent by the server when in `server_vad` mode to indicate that speech has been \ndetected in the audio buffer. This can happen any time audio is added to the \nbuffer (unless speech is already detected). The client may want to use this \nevent to interrupt audio playback or provide visual feedback to -
"instructions": "Your knowledge cutoff is 2023-10. You are a helpful, witty, and friendly AI. Act like a human, but remember that you aren't a human and that you can't do human things in the real world. Your voice and personality should be warm and engaging, with a lively and playful tone. If interacting -
description: "Add a new Item to the Conversation's context, including messages, function \ncalls, and function call responses. This event can be used both to populate a \n\"history\" of the conversation and to add new items mid-stream, but has the \ncurrent limitation that it cannot populate assistant audio messa -
description: "Send this event to truncate a previous assistant message’s audio. The server \nwill produce audio faster than realtime, so this event is useful when the user \ninterrupts to truncate audio that has already been sent to the client but not \nyet played. This will synchronize the server's understandi -
description: "Send this event to append audio bytes to the input audio buffer. The audio \nbuffer is temporary storage you can write to and later commit. A \"commit\" will create a new\nuser message item in the conversation history from the buffer content and clear the buffer.\nInput audio transcription (if enabl -
description: "This event instructs the server to create a Response, which means triggering \nmodel inference. When in Server VAD mode, the server will create Responses \nautomatically.\n\nA Response will include at least one Item, and may have two, in which case \nthe second will be a function call. These Items w -
The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio -
description: "Sent by the server when in `server_vad` mode to indicate that speech has been \ndetected in the audio buffer. This can happen any time audio is added to the \nbuffer (unless speech is already detected). The client may want to use this \nevent to interrupt audio playback or provide visual feedback to -
description: "Returned when a Response is done streaming. Always emitted, no matter the \nfinal state. The Response object included in the `response.done` event will \ninclude all output Items in the Response but will omit the raw audio data.\n\nClients should check the `status` field of the Response to determine -
"instructions": "Your knowledge cutoff is 2023-10. You are a helpful, witty, and friendly AI. Act like a human, but remember that you aren't a human and that you can't do human things in the real world. Your voice and personality should be warm and engaging, with a lively and playful tone. If interacting -
"instructions": "Your knowledge cutoff is 2023-10. You are a helpful, witty, and friendly AI. Act like a human, but remember that you aren't a human and that you can't do human things in the real world. Your voice and personality should be warm and engaging, with a lively and playful tone. If interacting -
Configuration for input audio transcription, defaults to off and can be set to `null` to turn off once on. Input audio transcription is not native to the model, since the model consumes audio directly. Transcription runs asynchronously through [the /audio/transcriptions endpoint](https://developers.openai -
The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio -
The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio -
The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "here are examples of good responses") and on audio -
description: Options for prompt caching. Supported for `gpt-5.6` and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For cache matching, OpenAI co -
description: The Cyber access program to use for this request. Supported values are `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves the program from the model's Cyber tier and your organization and project access, subject to model-specific eligibility restrictions. By default, mo -
description: Options for prompt caching. Supported for `gpt-5.6` and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For cache matching, OpenAI co -
Specifies the processing type used for serving the request. - If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'. - If set to 'default', then the request will be processed with the s -
description: Options for prompt caching. Supported for `gpt-5.6` and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For cache matching, OpenA -
description: Play one complete audio fixture through the session output. Send this event over the primary WebSocket or a server sideband. Audio must be raw mono PCM16 little-endian at 24 kHz, regardless of the session audio format, and at most 30 seconds. The entire payload is validated before model speech is int -
description: The size of the generated images. For `gpt-image-2`, `gpt-image-2-2026-04-21`, `gpt-image-2.5-sunburst`, `gpt-image-2.5-sunburst-2026-09-08`, `gpt-image-2.5-flare`, and `gpt-image-2.5-flare-2026-09-08`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`. Width a -
Specifies the processing type used for serving the request. - If set to 'auto', then the request will be processed with the service tier configured in the Project settings. Unless otherwise configured, the Project will use 'default'. - If set to 'default', then the request will be processed with the s -
description: Options for prompt caching. Supported for `gpt-5.6` and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For cache matching, OpenAI co -
description: Options for prompt caching. Supported for `gpt-5.6` and later models. By default, OpenAI automatically chooses one implicit cache breakpoint. You can add explicit breakpoints to content blocks with `prompt_cache_breakpoint`. Each request can write up to four breakpoints. For cache matching, OpenAI co -
description: The Cyber access program to use for this request. Supported values are `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves the program from the model's Cyber tier and your organization and project access, subject to model-specific eligibility restrictions. By default, mo -
-
dismissed Long markdown table row documenting client credential destinations.
Reasoning
A long markdown table row of prose describing credential routing. Long table lines in docs are normal.
-
dismissed Long markdown table row describing WebSocket destinations and auth headers.
Reasoning
A long markdown table row of security-model prose about WebSocket auth headers. This is documentation, not code.
-
-
dismissed Long markdown table row describing a WebSocket regression risk.
Reasoning
A long markdown table row describing a risk and its impact. It is prose in a security document.
-
-
-
STEADY_ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" source "$STEADY_ROOT/scripts/steady/settings" steady_verifylikely benign Launcher sources its own settings file via a script-relative root path.Reasoning
The script derives its root from its own path and sources a settings file within the same repository. Sourcing a path built from a script-relative root is a common launcher pattern and shows no sign of injection.
-
# Keep the caller's working directory so relative spec paths keep working. exec "$DENO_DIRECTORY/$DENO_BINARY" run --cached-only --frozen \ --config "$STEADY_SOURCE/deno.json" \ --allow-read --allow-net --allow-env --allow-write \likely benign Launcher execs a Deno binary whose path comes from repo settings variables.Reasoning
The launcher execs a Deno binary built from DENO_DIRECTORY and DENO_BINARY, which are set by the repo's settings file, with fixed flags for a cached, frozen run. The dynamic path is expected for a launcher, though the critical severity reflects that the executable is chosen by variables.
-
STEADY_ROOT="$(cd "$(dirname "$0")/../.." && pwd -P)" source "$STEADY_ROOT/scripts/steady/settings" mkdir -p "$STEADY_CACHE"likely benign Install script sources its repo-local settings file.Reasoning
The install script sources the settings file located relative to its own location, the same pattern as the launcher. Nothing in the snippet shows attacker-controlled input.
-
steady_verify "$DENO_DIRECTORY/$DENO_BINARY" cache --frozen --config "$STEADY_SOURCE/deno.json" "$STEADY_SOURCE/cmd/steady.ts" >&2 if [[ "${1:-}" == '--print-executable' ]]; thenlikely benign Install script runs a Deno cache command using settings-defined binary variables.Reasoning
The script runs cache using a Deno binary chosen from variables defined in the settings file it sources. This is consistent with the launcher's design, and the snippet shows no external input.
-
= = returndismissed Module-level lazy attribute loader that imports submodules on demand.Reasoning
This is the PEP 562 module __getattr__ pattern, which lazily imports submodules and caches them in globals. It is a standard, legitimate lazy-loading idiom in the OpenAI SDK.
-
= = returndismissed Lazy submodule import via module __getattr__ in the streaming package.Reasoning
The same PEP 562 lazy-import __getattr__ idiom, importing a relative submodule by name. It is a standard, benign pattern.
-
= returnlikely benign Module-level __getattr__ that lazily resolves and caches submodule attributes in globals().Reasoning
This is the standard lazy-loading __getattr__ pattern for Python submodules: it raises AttributeError for unknown names and caches resolved attributes into globals(). The name is a module attribute lookup, not attacker-controlled input from the network, and the code is part of the openai SDK's known lazy import mechanism.
-
= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Same lazy-import __getattr__ pattern as the package root: unknown names raise AttributeError and resolved names are cached in globals(). Standard, benign SDK code.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/__init__.py:233:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Identical lazy-loading __getattr__ boilerplate for a nested resource package; no external input reaches an execution sink, only module attribute resolution.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/groups/__init__.py:68:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ with AttributeError fallback and globals() caching, consistent across generated SDK resource packages.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/__init__.py:230:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Generated lazy-import boilerplate; the dynamic lookup only resolves known submodule names within the package.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/groups/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ pattern with globals() caching and AttributeError fallback; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/service_accounts/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ pattern; only resolves attributes within the package and caches them, no execution of external data.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/users/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ with globals() caching; generated SDK boilerplate with no malicious indicators.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/users/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ pattern; benign module attribute resolution.
-
= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ with globals() caching; generated SDK code with no dynamic execution or encoded payloads.
-
= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ boilerplate; the AST signal flags the generic globals() write but the context is ordinary module lazy loading.
-
= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ pattern with AttributeError fallback; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/environments/__init__.py:68:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ with globals() caching; generated SDK boilerplate.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/__init__.py:128:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ pattern; no external input executed, benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/subagents/__init__.py:68:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ with globals() caching; generated SDK code, benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/subagents/turns/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching resolved attributes in globals().Reasoning
Standard lazy-import __getattr__ pattern with AttributeError fallback and globals() caching; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/turns/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ that caches resolved attributes into globals() in an SDK package __init__.Reasoning
The snippet is the standard PEP 562 module-level __getattr__ lazy-loading pattern. It raises AttributeError for unknown names and caches resolved submodule attributes into globals(). This is a common, legitimate way to defer imports in a generated SDK package, and nothing here executes external input or hides behavior.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/vaults/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching into globals() in a resources package __init__.Reasoning
Same PEP 562 lazy-attribute pattern: unknown names raise AttributeError and resolved names are cached in globals(). It is a standard import-deferral idiom with no sign of malicious use.
-
= returnlikely benign Lazy module attribute loader writing resolved values into globals() in an SDK __init__.Reasoning
The snippet is the standard lazy module __getattr__ idiom: an AttributeError for unknown names and a cache write into globals(). The name comes from the module's own attribute lookup, so there is no injection path.
-
= returnlikely benign Module-level lazy attribute resolver caching into globals() in a beta resources package.Reasoning
Standard PEP 562 lazy-loading __getattr__ pattern that caches resolved names into globals(). It is typical of generated SDK packages and shows no dynamic execution or hidden payload.
-
= returnlikely benign Lazy attribute loader for the beta threads package, caching resolved values into globals().Reasoning
Standard lazy-import __getattr__ idiom. It raises AttributeError for unknown names and caches resolved attributes into globals(). No external input reaches an exec or eval sink.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/threads/runs/__init__.py:53:9= returnlikely benign Lazy submodule/attribute loader in the threads runs package __init__.Reasoning
Standard PEP 562 lazy-loading pattern with a cache write into globals() after an AttributeError fallback. This is a legitimate import-deferral technique and does not indicate malicious intent.
-
= returnlikely benign Lazy-loading module __getattr__ in the chat resources __init__ that caches into globals().Reasoning
This is the standard lazy-import module __getattr__ that caches resolved names into globals(). The pattern is common in large Python SDKs and carries no execution or obfuscation risk here.
-
= returnlikely benign Lazy module attribute resolver in the chat completions package __init__.Reasoning
Standard PEP 562 lazy attribute resolution: unknown names raise AttributeError and known names are cached in globals(). It is an ordinary deferred-import idiom with no dynamic code execution.
-
= returnlikely benign Lazy module attribute loader in the containers resources __init__.Reasoning
Standard lazy-import __getattr__ idiom that writes resolved values into globals(). This is routine in generated SDK packages and involves no external input or code execution.
-
= returnlikely benign Lazy attribute loader in the containers files package __init__.Reasoning
Same PEP 562 lazy-loading pattern with an AttributeError fallback and a globals() cache write. It is a benign import-deferral technique.
-
= returnlikely benign Lazy attribute resolver in the conversations resources __init__.Reasoning
Standard lazy module __getattr__ that caches resolved attributes into globals(). The pattern is ordinary in SDK packages and presents no injection or execution risk.
-
= returnlikely benign Lazy module attribute loader in the evals resources __init__.Reasoning
Lazy-loading PEP 562 __getattr__ with a globals() cache. This is a legitimate deferred-import idiom and the snippet shows no sign of malicious behavior.
-
= returnlikely benign Lazy attribute loader in the evals runs package __init__.Reasoning
Standard lazy-import module __getattr__ that caches into globals(). Routine SDK code with no exec, eval, or external input path.
-
= returnlikely benign Lazy module attribute resolver in the fine_tuning package __init__.Reasoning
Standard PEP 562 lazy-loading __getattr__ with an AttributeError fallback and a globals() cache write. This is an ordinary deferred-import technique in an SDK package.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/fine_tuning/alpha/__init__.py:53:9= returnlikely benign Lazy attribute loader in the fine_tuning alpha package __init__.Reasoning
Same lazy-import __getattr__ pattern caching resolved names into globals(). It is a benign, common idiom with no dynamic execution of untrusted data.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/fine_tuning/checkpoints/__init__.py:53:9= returnlikely benign Lazy attribute loader in the fine_tuning checkpoints package __init__.Reasoning
Standard PEP 562 lazy-loading module __getattr__ that caches into globals(). This routine deferred-import idiom does not indicate obfuscation or malicious intent.
-
= returnlikely benign Lazy module attribute loader caching values into globals() in the openai SDK.Reasoning
Standard lazy-loading __getattr__ pattern in Stainless-generated SDK package init; it caches resolved submodule attributes into module globals. Only reaches names within the package's own declared lazy exports, no external input or execution of decoded content.
-
= returnlikely benign Lazy attribute resolver writing to globals in the live resources package.Reasoning
Same benign lazy-import __getattr__ idiom used across generated SDK resource packages; no network or execution of attacker-controlled data.
-
= returnlikely benign Lazy module attribute loader in realtime resources package.Reasoning
Standard lazy __getattr__ caching pattern in a generated SDK package; the dynamic assignment only memoizes module attributes.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/realtime/translations/__init__.py:53:9= returnlikely benign Lazy attribute loader for realtime translations submodule.Reasoning
Identical generated lazy-loader idiom; no malicious indicators in the snippet.
-
= returnlikely benign Lazy attribute loader for responses resource package.Reasoning
Standard lazy-import __getattr__ caching into globals in SDK package init; benign.
-
= returnlikely benign Lazy attribute loader for safety resource package.Reasoning
Generated SDK lazy-loading pattern; the name is only used to memoize a module attribute.
-
= returnlikely benign Lazy attribute loader for skills resource package.Reasoning
Standard lazy __getattr__ with globals caching in a generated SDK module; no suspicious behavior.
-
= returnlikely benign Lazy attribute loader for skills versions submodule.Reasoning
Same generated lazy-import idiom; benign module plumbing.
-
= returnlikely benign Lazy attribute loader for uploads resource package.Reasoning
Generated SDK lazy-loading __getattr__ caching resolved attributes; benign.
-
= returnlikely benign Lazy attribute loader for vector stores resource package.Reasoning
Standard lazy-import pattern in SDK package init; no external data or execution involved.
-
# Standardized test constants (matches TypeScript implementation) = =likely benign Test webhook secret constant encoded in base64 format.Reasoning
Test fixture constant: a webhook signing secret in whsec_ format with base64 body, used in a test of signature verification. Raw-pass base64 heuristic on a test vector is a false positive; not obfuscation.
-
= = = =likely benign Test webhook signature constant in base64.Reasoning
Test signature value (v1, base64) for webhook verification tests; expected test vector, not an encoded payload being executed.
-
# Compile once per worker, but execute with fresh globals for every case. returnlikely benign Test harness compiles a generated checker program for dependency-floor validation.Reasoning
compile of a script read from a repo-local checker script path to run a dependency-security check in tests. The source comes from an in-repo function generating program text for a test; no network or decoded payload. Dynamic but contextually a test harness.
-
# the same checker and Git stub in-process; keep real CLI coverage below. =likely benign Test compiles a fake git stub from fixture file for in-process execution.Reasoning
Test compiles a fake git stub script read from a test fixture file to run in-process, avoiding subprocess. Test-only fixture execution from repo, not malicious.
-
returnlikely benign Test executes a compiled fake git stub in-process with patched argv.Reasoning
exec of the compiled fake git stub with a fresh globals dict inside a test, with argv patched. Test-harness mocking; the program originates from a local fixture, so benign in context.
-
likely benign A test in the uv workflows suite execs a program produced by a local helper and catches SystemExit.
Reasoning
The exec call runs a program generated by a helper named compiled_security_dependency_floor_program, which is a test helper inside a uv test suite. The code is generated and executed in a test context with a __main__ namespace and SystemExit handling, which fits testing a script rather than a dropper. The non-literal argument is generated locally, not fetched from the network or decoded from a blob in the snippet. Some doubt remains because exec of generated code is unusual and the generator's content is not shown.
-
return # type: ignore[no-any-return]likely benign A test utility evaluates forward-reference type strings with eval to resolve annotations.Reasoning
This is the standard typing helper that evaluates a ForwardRef string against a globals dict, as used in typing internals and test utilities. The eval input is a type annotation string, not attacker-controlled input in this context, and the type-ignore comment marks it as deliberate.
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&