openai 3.35.1
- Source
- https://github.com/openai/openai-python
- Tag scanned
v3.35.1- Compared with
v3.35.0(0 signals introduced since)- Files
- 2463 scanned, 37 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 2 warn · 108 info
- Scan time
- 42.1 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 61 of 61 warn and critical signals; 59 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-18 21:43
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
STEADY_ROOT="$(cd "$(dirname "$0")/../.." && pwd -P)" source "$STEADY_ROOT/scripts/steady/settings" mkdir -p "$STEADY_CACHE"likely benign Install script that sources a repo-local settings file relative to its own path.Reasoning
The install script sources the settings file from a path computed relative to its own location. This matches the launcher bootstrap pattern and is a routine internal source.
-
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 step invoking a Deno binary whose path comes from variables set in settings.Reasoning
The script runs the Deno cache step using variables set in the sourced settings file, with --frozen and a fixed repo config. The variables are not defined in this file, so the target binary depends on settings that are not shown. The structure matches a normal toolchain install step.
-
data:dismissed Long single-line JSON example of a transcription streaming event in an OpenAPI spec.Reasoning
A 2410-character line is a JSON-encoded streaming event containing a transcript and token log-probabilities. This is ordinary generated API example data in a YAML spec, and the raw pass flags length alone.
-
-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 example response text inside an OpenAPI example block.Reasoning
The long line is a JSON string literal holding example model output about a Berkshire Hathaway letter. It is documentation example content, and long-line is a weak raw-pass signal here.
-
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 example response text in the OpenAPI spec.Reasoning
This is a duplicate of the same generated example text at another location in the spec. It is benign documentation content flagged only for line length.
-
**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 selection.
Reasoning
The flagged line is a long Markdown table row describing credential-handling behavior in prose. Line length in a documentation table is not obfuscation.
-
dismissed Long Markdown table row describing WebSocket destinations and auth headers.
Reasoning
A long Markdown table cell explaining WebSocket auth headers and destinations. It is prose documentation with no executable content.
-
-
dismissed Long Markdown threat-table row about WebSocket credential disclosure.
Reasoning
A long Markdown table row in a security-model threat table. It is documentation content flagged only for length.
-
-
-
STEADY_ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" source "$STEADY_ROOT/scripts/steady/settings" steady_verifylikely benign Launcher script that sources a sibling settings file located relative to its own directory.Reasoning
The script sources a settings file at a path derived from its own location via dirname and pwd -P. This is a standard relative-to-self bootstrap pattern; the sourced file is part of the same repository.
-
# 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 exec of a Deno binary via directory and binary variables loaded from settings.Reasoning
exec runs a Deno binary from variables set by the sourced settings file, with --cached-only and --frozen and a fixed config path. This is a launcher that runs a pinned runtime. The variables are defined outside this snippet, so the exact binary cannot be confirmed from the code shown.
-
= = returnlikely benign Module-level __getattr__ implementing lazy attribute loading via import_module and globals caching.Reasoning
This is the standard PEP 562 module __getattr__ for lazy submodule loading. It imports the named attribute, caches it in globals, and raises AttributeError otherwise. It is a common, legitimate Python pattern.
-
= = returnlikely benign Module-level __getattr__ for lazy loading of streaming helper submodules.Reasoning
This is the same lazy-loading __getattr__ pattern, importing a relative submodule and caching it in globals. It is ordinary package code with no obfuscation or hidden execution.
-
= returnlikely benign Module-level __getattr__ that lazily loads and caches submodule attributes via 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. It is a well-known legitimate idiom in the openai SDK package.
-
= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Same lazy-import __getattr__ idiom in a package __init__; it only resolves names from a known set and caches them, with no execution of external data.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/__init__.py:233:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ pattern raising AttributeError on unknown names; benign SDK structure.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/groups/__init__.py:68:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Same lazy-import idiom in a generated SDK package __init__; no dynamic code execution or external input involved.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/__init__.py:230:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in a package __init__; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/groups/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Same generated lazy-import __getattr__ pattern; no malicious indicators.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/service_accounts/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Same generated lazy-import __getattr__ pattern; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/projects/users/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Same generated lazy-import __getattr__ pattern; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/admin/organization/users/__init__.py:53:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Same generated lazy-import __getattr__ pattern; benign.
-
= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; benign.
-
= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; benign.
-
= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/environments/__init__.py:68:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/__init__.py:128:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/subagents/__init__.py:68:9= returnlikely benign Lazy-loading module __getattr__ caching attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; 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 attributes into globals.Reasoning
Standard lazy-loading __getattr__ idiom in SDK package __init__; benign.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/sessions/turns/__init__.py:53:9= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
The snippet is the standard lazy-loading __getattr__ pattern: it resolves a submodule or attribute by name, caches it into globals(), and raises AttributeError when the name is unknown. The name is a module attribute lookup, not attacker-controlled input, and nothing here executes code or reaches the network.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/agents/vaults/__init__.py:53:9= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Same lazy-loading __getattr__ pattern: the name is looked up, the value is cached in globals(), and an AttributeError is raised for unknown names. This is a common way to defer imports in generated SDK code.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
The snippet is the standard PEP 562 lazy-attribute pattern, with the value cached into globals() and an AttributeError for unknown names. No decoding, execution, or external input is involved.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
This is the standard PEP 562 lazy-attribute pattern. The globals() write only caches an already-resolved module attribute, which is typical for a generated SDK package.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
The lazy __getattr__ resolves a name, caches it in globals(), and raises AttributeError otherwise. This is standard deferred-import behaviour in an SDK resource package.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/beta/threads/runs/__init__.py:53:9= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Same PEP 562 lazy-loading pattern: resolve by name, cache into globals(), and fail with AttributeError. No dynamic execution or suspicious data flow is present.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
The snippet is the standard lazy-attribute __getattr__ with globals() caching and an AttributeError fallback. It is a legitimate import-deferral idiom.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Standard PEP 562 lazy-loading: the module attribute is resolved, cached into globals(), and unknown names raise AttributeError. Nothing here is malicious.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
This is the standard lazy __getattr__ idiom with a globals() cache and an AttributeError for unknown names. It is typical of generated SDK packages.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Same PEP 562 lazy-loading pattern with globals() caching and AttributeError fallback. No code execution or external data flow is shown.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
The lazy __getattr__ resolves a submodule attribute by name, caches it into globals(), and raises AttributeError otherwise. This is an ordinary deferred-import pattern.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Standard PEP 562 lazy attribute loading with a globals() cache and AttributeError for unknown names. Benign SDK plumbing.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Same lazy-loading __getattr__ idiom with globals() caching. The flagged 'reach-by-name' is just attribute resolution inside a generated package.
-
= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Standard lazy-import __getattr__ with globals() caching and AttributeError on miss. The pattern is legitimate and the name is only used for module attribute lookup.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/fine_tuning/alpha/__init__.py:53:9= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
This is the standard PEP 562 lazy-loading idiom. The globals() write caches an attribute that was already resolved, with no suspicious data flow.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/fine_tuning/checkpoints/__init__.py:53:9= returnlikely benign Lazy-import __getattr__ hook in an SDK package __init__ that caches resolved attributes into module globals.Reasoning
Same lazy __getattr__ pattern with globals() caching and AttributeError fallback. It is a common, legitimate deferred-import idiom in generated SDK code.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
This is the standard lazy-loading module __getattr__ pattern in the Stainless-generated OpenAI SDK: it resolves a submodule attribute by name and caches it in globals. It is a common, legitimate Python idiom with no encoding or remote fetch.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same lazy-import __getattr__ pattern as the other OpenAI SDK package __init__ files; it only caches a lazily imported resource object under its name.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Standard lazy-loading __getattr__ idiom in the SDK package; the globals write stores a resolved attribute, not attacker-controlled code.
-
info
warn→ info by reviewdynamic-attributesrc/openai/resources/realtime/translations/__init__.py:53:9= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
= returnlikely benign Lazy attribute loader caching resolved names into module globals.Reasoning
Same generated lazy-loading __getattr__ pattern; benign module plumbing.
-
# Standardized test constants (matches TypeScript implementation) = =likely benign Test fixture webhook secret string flagged as a base64 blob.Reasoning
The flagged value is a test webhook secret constant (whsec_ prefix, matching the TypeScript SDK test vector) used to verify HMAC signatures in tests. Base64 test fixtures are expected here and there is no decoding into execution.
-
= = = =likely benign Test fixture webhook signature string flagged as a base64 blob.Reasoning
The flagged value is a test webhook signature constant (v1, base64 HMAC) in a test file; expected fixture data with no malicious decoding.
-
# Compile once per worker, but execute with fresh globals for every case. returnlikely benign Test compiles the repo's dependency-security checker script for in-process execution.Reasoning
compile() of a generated program text is used to run a dependency-security checker script from the repo's own scripts directory in tests. The source is internal test scaffolding, not downloaded or obfuscated, though dynamic compile of script text is worth a glance.
-
# the same checker and Git stub in-process; keep real CLI coverage below. =likely benign Test compiles a local fake git stub script for in-process execution.Reasoning
Compiles a fake git stub script from the repository's test fixtures to run in-process with patched subprocess calls. It is test harness code for simulating git, with no network or obfuscated payload.
-
returnlikely benign Test executes a local fake git stub in-process with captured output.Reasoning
exec runs the locally compiled fake git stub with a fresh globals dict inside a test, paired with patched argv and stdout. This is a deliberate test technique; the code source is a repo fixture, not attacker-supplied.
-
likely benign A test executes a generated program via exec and inspects its SystemExit code.
Reasoning
The snippet executes the output of a locally named helper, compiled_security_dependency_floor_program(), inside a test file, and catches SystemExit to inspect the exit code. That reads as a test harness running a generated check program, not a dropper. The exec is still on a non-literal and the helper's source is not shown, so the verdict is not certain.
-
return # type: ignore[no-any-return]likely benign A test utility evaluates a ForwardRef's string in a given namespace to resolve type annotations.Reasoning
This is a standard helper that resolves a typing.ForwardRef by evaluating its string form against a supplied globals dict, with a type-ignore comment. It is a common pattern in typing-introspection test utilities and handles only the forward reference's own text, not attacker-controlled input.
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.
&&