posthog 7.73.0
- Source
- https://github.com/posthog/posthog-python
- Tag scanned
posthog-v7.73.0- Compared with
posthog-v7.72.0(0 signals introduced since)- Files
- 430 scanned, 277 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 10 info
- Scan time
- 10.0 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 9 of 9 warn and critical signals; 9 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-20 07:11
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
return return flikely benign A calculator tool in an OpenAI agents example evaluates a sanitized arithmetic expression with eval.Reasoning
The eval call sits behind an invalid-character check, so it is an attempted sanitizer, not a bypassable free-form eval. Evaluating model-supplied input in an agent tool is still a real injection risk, so this is not fully dismissable, but in an example calculator it reads as a deliberate simplification.
-
info
warn→ info by reviewdynamic-executionexamples/example-ai-openai-agents/single_agent.py:29:23return return flikely benign A single-agent calculator example uses eval on a filtered arithmetic expression.Reasoning
Same calculator pattern as multi_agent.py: an invalid-character filter precedes eval of a power-operator-rewritten expression. The filter limits the risk, but eval on model-controlled input remains a weakness rather than malicious intent.
-
= += 1dismissed Stack-walking helper in the PostHog SDK's exception utilities uses sys._getframe to collect frames.Reasoning
sys._getframe in a loop with a ValueError guard is the standard way to walk the stack when building exception frame information for an error-tracking SDK. This is expected for the library's purpose.
-
) = # Encode side: our output is byte-identical to the shared wire format.likely benign A base64url-encoded JSON session-token fixture used in an MCP test.Reasoning
The blob is a short base64url-encoded JSON fixture (session id, client name, version, timestamp) in a test file, with a comment saying the encode side is compared against the wire format. It is test data, not a hidden payload.
-
# zlib header =dismissed Test code decompresses a captured zlib request body to check its contents.Reasoning
The test decompresses its own captured request body and asserts that the api_key is absent. This is ordinary round-trip verification of the SDK's compression, not runtime execution of a hidden payload.
-
= returndismissed Test helper gunzips and parses a mocked metrics request body.Reasoning
gzip.decompress is applied to a mocked HTTP request body and parsed as JSON in a test helper. This is standard test assertion plumbing.
-
=dismissed Test decompresses a gzip request body to assert on its JSON contents.Reasoning
The test gunzips the request data it sent and checks batch and api_key fields. It is ordinary test verification of compressed transport.
-
info
warn→ info by reviewdecoder-decompress-payloadposthog/test/tracing/test_client_traces.py:60:23, = return , ,dismissed Tracing test helper gunzips a captured POST body for assertions.Reasoning
A test helper decompresses the mocked session.post payload and returns it as JSON for assertions. This is benign test code.
-
assert == assert ==dismissed Transport test gunzips the request body to compare it with the expected payload.Reasoning
The test gunzips the mocked request data and compares it with the expected payload. It is ordinary test assertion code with no evidence of hidden execution.
-
class posthog.client.Client(project_api_key: str, host=None, debug=False, max_queue_size=10000, send=True, on_error=None, flush_at=100, flush_interval=5.0, gzip=False, max_retries=3, sync_mode=False, timeout=15, thread=1, poll_interval=30, personal_api_key=None, disabled=False, disable_geoip=True, is_server=True, histo
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.
&&