posthog 7.73.2
- Source
- https://github.com/posthog/posthog-python
- Tag scanned
posthog-v7.73.2- Compared with
posthog-v7.73.1(0 signals introduced since)- Files
- 430 scanned, 279 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 10 info
- Scan time
- 10.1 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-21 10:41
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 example agent evaluates an arithmetic expression with eval after replacing '^' with '**'.Reasoning
The eval runs on a string derived from model/user input, which is a real injection risk. The snippet shows a character check before it, though, and the code looks like an example calculator tool rather than hidden or malicious code. It is a weak pattern worth fixing, not evidence of intent.
-
info
warn→ info by reviewdynamic-executionexamples/example-ai-openai-agents/single_agent.py:29:23return return flikely benign A calculator tool in an example agent evaluates an arithmetic expression with eval after replacing '^' with '**'.Reasoning
This is the same calculator snippet as multi_agent.py, with the same character-validation guard before the eval. It is a weak eval pattern in example code, not obfuscation or malicious intent.
-
= += 1likely benign Walks up the call stack with sys._getframe to collect frame information for exception reporting.Reasoning
sys._getframe with a depth counter inside a try/except ValueError is a standard way to walk the stack for module or frame names in exception reporting. It is legitimate introspection, not a hidden execution path.
-
) = # Encode side: our output is byte-identical to the shared wire format.dismissed A base64-encoded session token fixture in an MCP test that decodes to a small JSON object.Reasoning
The raw pass flags a base64-like string literal in a test fixture. It decodes to a small JSON object (session id, client name, version), and the comment indicates it matches a shared wire format. This is a test fixture, not a payload.
-
# zlib header =dismissed A test decompresses a captured zlib request body to verify its contents.Reasoning
zlib.decompress is applied to a request body captured from a mock in a test, then checked for the absence of api_key. This is a round-trip verification of the client's own compression, not a runtime-embedded payload.
-
= returndismissed A test helper decompresses a gzipped mock request body and parses it as JSON.Reasoning
gzip.decompress is applied to a mocked request body in a test helper and parsed as JSON. This is ordinary test assertion code.
-
=dismissed A test decompresses a captured gzip request body and asserts on its fields.Reasoning
gzip.decompress is used on captured request data in a test to check the batch and api_key fields. This is standard test verification of the client's payload.
-
info
warn→ info by reviewdecoder-decompress-payloadposthog/test/tracing/test_client_traces.py:60:23, = return , ,dismissed A test helper decompresses a gzipped POST body from a mock session and parses the JSON.Reasoning
gzip.decompress is applied to a mocked session.post payload in a test helper to check the sent JSON. It is ordinary test code.
-
assert == assert ==dismissed A transport test decompresses a gzipped request body and compares it with the expected payload.Reasoning
gzip.decompress is used on a mocked request body in a transport test to compare against the expected payload. This is routine test verification.
-
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.
&&