PyPI / snowflake-connector-python / 5.1.0
snowflake-connector-python 5.1.0
- Source
- https://github.com/snowflakedb/drivers
- Artifact scanned
snowflake_connector_python-5.1.0.tar.gz- Compared with
snowflake_connector_python-5.0.0.tar.gz(0 signals introduced since)- Files
- 508 scanned, 36 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 28 info
- Scan time
- 27.1 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 22 of 22 warn and critical signals; 22 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 10:09
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
# Install uv | # Install Hatchlikely benign Markdown install instructions that pipe the official uv install script from astral.sh into sh.Reasoning
The curl | sh pipeline is the documented installer for uv in a README install section. Piping a vendor install script to sh is a common, transparent pattern, though it is a supply-chain risk in principle and is worth a note.
-
/// autoref-based specialization hack. -
-
-
assert_eq!; assert_eq!; }dismissed Base64-encoded hash constants asserted in a Rust unit test.Reasoning
The blob is an expected SHA-256/MD5 digest in base64 inside an assert_eq! in a test function. It is a test fixture with no execution path.
-
encoded, "B7n4IvUy3F/eYM/3c8GT0Ae5+CL1Mtxf3mDP93PBk9CU9VGsH8Jz102E/GOLKp74" ); }dismissed Base64 expected-output constant in an encryption test assertion.Reasoning
The 64-byte base64 value is a fixed expected output compared in a test assertion, typical of cryptographic test vectors.
-
// the skip fires. const EMPTY_SHA256_B64: &str = "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="; let server = start.await;dismissed Constant holding the base64 SHA-256 of empty content, used in a mock-server test.Reasoning
The constant is the base64 SHA-256 of the empty string, used to mock a GCS checksum in a test. It is a well-known value with no obfuscation.
-
info
warn→ info by reviewencoding-base64sf_core/src/rest/snowflake/workload_identity/aws.rs:1720:173headers, "AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20240101/us-east-1/sts/aws4_request, SignedHeaders=host;x-amz-date;x-amz-security-token;x-snowflake-audience, Signature=ce598263c65db61df01e9b76a7226fdfcd6673fc474cbca3cbdc7ae4ccf53bca" );dismissed Test assertion containing the AWS documentation example SigV4 Authorization header.Reasoning
The access key AKIAIOSFODNN7EXAMPLE and the signature are the AWS-documented example credentials, used in a test asserting a SigV4 Authorization header. The 'blob' is a plain header string, not encoded data.
-
info
warn→ info by reviewencoding-base64sf_core/src/rest/snowflake/workload_identity/aws.rs:1845:152decoded, "AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20240101/eu-west-1/sts/aws4_request, SignedHeaders=host;x-amz-date;x-snowflake-audience, Signature=7f6f01b5ad72d73b9af0f5e06e3c782fd3d63600efd29a1bcdd28fa379d0fbce" );dismissed Test assertion with AWS example SigV4 Authorization header from a decoded fixture.Reasoning
Same pattern as the sibling finding: AWS documentation example credentials in a test assertion against a decoded header value. No malicious use.
-
-
info
warn→ info by reviewframe-introspectionsrc/snowflake/connector/_internal/backward_compatibility.py:177:17= # skip: this helper + our direct caller return Truelikely benign Helper that inspects the call stack via sys._getframe to identify its caller.Reasoning
sys._getframe(2) is used to find the direct caller of a helper for compatibility or warning logic, with a ValueError fallback. This is a common, benign introspection idiom in a connector library.
-
info
warn→ info by reviewdynamic-attributesrc/snowflake/connector/_internal/errorhandler.py:148:16continue = continuelikely benign Reflective class attribute lookup used to check a simplified-error-handling marker.Reasoning
vars(cls)[name] reads a class attribute dictionary to check a marker attribute for simplified error handling. This is ordinary reflection on the class's own attributes, with no hidden execution or obfuscated lookup.
-
info
warn→ info by reviewframe-introspectionsrc/snowflake/connector/_internal/logging/core_logger.py:109:17# stacklevel counts frames above that method =likely benign Logger wrapper that uses sys._getframe with stacklevel to attribute log records to the caller.Reasoning
sys._getframe(1 + stacklevel) mirrors the stacklevel mechanism of Python's standard logging, to attribute log records to the correct caller. This is a standard logging idiom.
-
info
warn→ info by reviewmacro-keyword-overridesrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:1577:1likely benign Cython-generated C macro defining atomic int type aliases.Reasoning
This is Cython-generated portability boilerplate. The macro aliases int for atomic and nonatomic type names depending on compiler support, which is standard generated code and not an attack.
-
info
warn→ info by reviewmacro-keyword-overridesrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:1578:1likely benign Cython-generated C macro defining the nonatomic int type alias.Reasoning
Same Cython-generated boilerplate as the adjacent macro definition. The int alias is the intended, standard usage.
-
info
warn→ info by reviewencoding-octalsrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:6721:218\0353v\314\2301\177\006cG\217\375Sxv\022S\210\033K\361\345\336\367\335\273\367\343likely benign Generated C source containing a long octal-escaped byte string literal.Reasoning
A long run of octal escapes in a Cython-generated C source is most likely a serialized constant or binary literal emitted by the code generator, such as embedded module bytecode or a data blob. The snippet alone does not show what the bytes encode, so a small doubt remains.
-
info
warn→ info by reviewembedded-nul-in-stringsrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:6721:518static const char cstring = "x\332}T\277o\323@\024V\245\016-\252D\005\025\254\036\030@\200\263\200\220XPJSQ\t\232&\215@\235\236^\317\317\311\251\366\235{wnc$\244\216\0353v\314\2301\177\006cG\217\375Sxv\022S\210\033K\361\345\336\367\335\273\367\343{~\351\014\221\027\032\354\307\244\334+\377\323>\312\210\002\317iOhuA\3likely benign A large binary-looking C string literal, likely a compressed or serialized data table in vendored generated code.Reasoning
The literal begins with a zlib-style header and carries binary bytes with embedded NULs. That fits a precompressed or serialized data blob generated into a vendored C++ file, not hand-written code. It is unusual in source, but nothing in the snippet shows it running code. The raw-like binary payload leaves some doubt.
-
info
warn→ info by reviewembedded-nul-in-stringsrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:6730:95static const char cstring = "\377(tree fr\377agment).\377?Failed \377to conve\177rt curr\031\000\377 row, ca\237use: \024\017\033\000s\376\014\020initial\277ize Ar?\000S\376m\000amTable\377Iterator\264h\007\"\010s#\002 i\035\004d\333is/\001en5\001gc\373is\004\003dno d\377efault _\377_reduce_\337_ due\275\001no?n-trivlikely benign A Cython-generated string table embedded in the Arrow iterator C++ source, mixing readable names with escaped bytes.Reasoning
The readable fragments include error text about converting rows and initializing an ArrowTableIterator, plus identifiers like __reduce_, __Pyx_ and PYTHON_TYPE. These are Cython-generated string tables for a Python extension module, a normal build artifact. The embedded NULs and octal escapes are typical of how Cython encodes such tables.
-
info
warn→ info by reviewencoding-octalsrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:6730:667llU\021\036\027\003many\240U\270U\207\032\360\355J\313\000\215\031\036\013get_\376\214\204\004ed_sche\377maER_FAI\377LED_TO_C\377ONVERT_R\373OW\013\001PYTHO\177N_TYPEI\333A\337faceE\333ARe\277cordBa\372\000S\276A\002__Pyx\001\000D\377ict_Next\377Ref__ann\375o\276\"___fun\315c\004\000_g\317%\021\000ma\375i\374 __modu}l\likely benign Octal escape runs within the same generated Cython string table in the vendored Arrow C++ code.Reasoning
The raw pass flags runs of octal escapes inside the same generated Cython string table. Such escapes are a standard way to encode binary and non-ASCII bytes in generated code. Raw findings have a higher false-positive rate, and the content is consistent with the table seen in the adjacent finding.
-
info
warn→ info by reviewencoding-octalsrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:6739:1540f\250A\250Q\330\010\017\210}\230A\330\014\022\220.\240\001\330\020\024\320\0245\260Q\260a\330\020\026\220a\200A\340\010\t\330\014\023\2204\220y\240\004\240B\240h\250a\330\010\017\210}\230A\330\014\022\220.\240\001\330\020\024\320\0245\260Q\260a\330\020\026\220a";likely benign A binary-looking octal-escaped string literal in the vendored generated C++ code.Reasoning
This is a raw-pass octal escape run in a binary-looking string literal in the same generated file. The bytes look like serialized data or encoded identifiers, and nothing in the snippet executes or decodes them. Without the surrounding code, a generated-table explanation is the most plausible.
-
info
warn→ info by reviewencoding-octalsrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/arrow_stream_iterator.cpp:6739:1695B\240h\250a\330\010\017\210}\230A\330\014\022\220.\240\001\330\020\024\320\0245\260Q\260a\330\020\026\220a";likely benign The tail of the same octal-escaped binary-looking string literal in the vendored C++ file.Reasoning
This is the closing part of the same octal-escaped literal flagged by the raw pass. It shows no execution or decoding in the snippet, and it matches the generated-data pattern of its neighbours.
-
info
warn→ info by reviewmacro-keyword-overridesrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h:10:1dismissed A portability header that redefines the inline keyword per compiler, as the flatcc library does.Reasoning
This is the standard portability shim from the flatcc project. It maps the inline keyword to compiler-specific spellings (__inline for MSVC and older GCC) and defines it empty for unknown compilers. Rebinding inline in a portable header is a known and harmless practice.
-
info
warn→ info by reviewmacro-keyword-overridesrc/snowflake/connector/_internal/nanoarrow_cpp/ArrowIterator/flatcc/portable/pinline.h:12:1dismissed Another branch of the same flatcc portability shim that defines inline for specific compilers.Reasoning
This is the same compiler-dispatch block in the flatcc portable header. The define is for the GCC 3+ and fallback branches and has no malicious effect.
-
: = -
: = -
return . return Nonelikely benign Reads the filename of the outermost call-stack frame, typically for logging or locating the calling script.Reasoning
inspect.stack(context=0)[-1].filename returns the outermost caller's filename, which is a common way to locate the entry script or for diagnostics and logging. It is slow but not malicious, and the call has no network, process or execution behaviour.
-
# Install uv | # Install Hatchlikely benign A developer README instruction that installs uv by piping the official install script to sh.Reasoning
This is the standard installation instruction for the uv tool from its official install script, shown in a developer's test README. It documents setup for a human to run, and the scanner does not execute markdown. The pipe-to-shell pattern is a known convention, but the source is the well-known vendor URL.
-
# Auto-detect path: # Or set manually:likely benign A README setup step that evals the export output of a project script to set a core path.Reasoning
This is a setup instruction in a test README that evals the output of a repository script, scripts/detect_core_path.py, to export a path. Eval of command output is risky in general, but here the script is part of the project and the context is developer setup. Nothing indicates the script is untrusted or that the doc is hiding anything.
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|
&&