PyPI / psycopg-binary / 3.3.7
psycopg-binary 3.3.7
- Source
- https://github.com/psycopg/psycopg
- Tag scanned
3.3.7- Compared with
3.3.6(0 signals introduced since)- Files
- 328 scanned, 49 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 26 info
- Scan time
- 19.4 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-11-03 06:28
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
likely benign A soft hyphen (U+00AD) splits the word 'Performance' in a documentation table header.
Reasoning
A soft hyphen inside the word 'Performance' in an RST table is invisible when rendered and has no functional effect. It most likely came from copying text out of a word processor, not from deliberate obfuscation, though the invisible character is an anomaly worth tidying.
-
) = # On Windows, for the moment, avoid using wait_c, because it was reported todismissed Looks up a wait function by name from module globals, choosing between the C and Python implementations.Reasoning
This selects a wait implementation from the module's own globals by a name chosen internally (fname), which is a common way to pick between C and Python wait backends. No external input reaches it, so it is not a dynamic-execution risk.
-
dismissed A test looks up a module-level data buffer by parametrized name and writes it to a COPY stream.
Reasoning
In a test, globals()[buffer] fetches a module-level test payload chosen by a parametrized name. It is test scaffolding with no external input.
-
await awaitdismissed An async test looks up a module-level data buffer by name to write to a COPY stream.Reasoning
Same pattern as the sync variant: a parametrized test fetches a fixed module-level buffer by name for an async COPY write. Benign test code.
-
is and . -
dismissed A test reads a module-level buffer by name and writes it to a COPY stream.
Reasoning
A parametrized test fetches a fixed module-level buffer by name for a COPY write. Test code with no external input.
-
= = assert ==dismissed A test reads an expected buffer from module globals to compare with file content.Reasoning
A test fetches an expected value from module globals by name and compares it with file contents. This is ordinary test data lookup.
-
assert not assertdismissed A test writes a module-level payload buffer to a COPY writer and asserts on its worker state.Reasoning
A test writes a module-level buffer selected by parametrized name to a COPY writer and checks worker state. Benign test code.
-
assert isdismissed A test writes a module-level buffer to a COPY writer after checking writer identity.Reasoning
Same parametrized test-buffer pattern as the other COPY tests. No external input reaches the globals lookup.
-
await awaitdismissed An async test writes a module-level buffer selected by name to a COPY stream.Reasoning
Parametrized async COPY test writing a fixed module-level buffer. Benign test scaffolding.
-
= = assert ==dismissed An async test reads an expected buffer from module globals to compare with file content.Reasoning
An async test loads an expected buffer from module globals to compare with file contents. Ordinary test logic.
-
assert not await assertdismissed An async test writes a module-level buffer and asserts on the copy worker.Reasoning
Async COPY test writing a module-level buffer and checking writer state. No external input is involved.
-
assert is await awaitdismissed An async test writes a module-level buffer to a COPY writer after an identity check.Reasoning
Same parametrized async test-buffer pattern. Benign.
-
= = assertdismissed Imports the psycopg package by a name derived from its own C extension module name to check its version.Reasoning
__import__ receives the package name derived from the psycopg C extension's own __name__ split on '.', which is a fixed internal value, not attacker input. This is a standard way to check the installed package version in a test.
-
dismissed Opens the test file repeatedly to exhaust file descriptors and test OSError handling.
Reasoning
Opening __file__ in a loop is a standard way to exhaust file descriptors to test the handling of EMFILE-like errors. The payload-extraction concern in the message does not apply, since the file contents are never parsed or executed.
-
dismissed Opens the test file repeatedly to exhaust file descriptors in an async waiting test.
Reasoning
The same file-descriptor exhaustion pattern as the sync test: __file__ is opened only to consume descriptors, and its contents are never executed or decoded.
-
=dismissed A shapely adapter test looks up a test geometry object by parametrized name from globals.Reasoning
A parametrized test resolves a fixed test geometry object by name from module globals and passes it to a query. Test code with no external input.
-
=likely benign A test resolves a parametrized object name through globals() to pick a test geometry.Reasoning
globals() lookup keyed by a test parameter name is a common pytest idiom for selecting test fixtures or objects by name. The key comes from the test's own parametrization, not untrusted input, and the code only builds test data.
-
&& && -
&& -
-
likely benign A CI script runs a sibling helper script via a directory variable and strips shared libraries in a built wheel.
Reasoning
The variable dir is almost certainly set from dirname of the script location in the psycopg CI tooling, so the script runs its own helper print_so_versions.sh. The find and strip calls are ordinary wheel-slimming steps. The assignment of dir is not shown, but the pattern matches legitimate CI scripts.
-
# tzdata is required for datetime tests. ;likely benign A Linux wheel-build CI script invokes a local build_libpq.sh via a directory variable.Reasoning
The command path is a directory variable used to invoke build_libpq.sh, a sibling build script in the same repository. This is standard CI layout. Nothing in the snippet fetches remote code or decodes payloads.
-
| | ;likely benign A distro-specific branch of the Linux CI script runs the local build_libpq.sh via a directory variable.Reasoning
This is the same pattern as the earlier finding in the same file: the directory variable points to the repository's own build_libpq.sh in a distro-specific branch. No network fetch or obfuscation appears in the snippet.
-
# Build dependency libraries # Show dependency treelikely benign A macOS CI script runs the repository's build_libpq.sh through a project-directory variable.Reasoning
prjdir is most likely the project root derived from the script location, and the command runs the repository's own build_libpq.sh. This is a routine dependency build step in macOS CI.
-
for; do && break if [; thenlikely benign A retry loop uses eval on the literal pg_isready command while waiting for a PostgreSQL service.Reasoning
eval is applied to a fixed literal command, pg_isready, inside a retry loop waiting for PostgreSQL to start. This is redundant but harmless. It takes no external input and has no malicious characteristics.
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.
&&