Skip to content

Possible fix(deps): 18 vulnerable dependencies in uv.lock #72

Description

@begininvoke

Spotted what might be an issue in sandboxes/llm_memory_local/uv.lock around line 1.

Vulnerability: urllib3 2.5.0 (pinned in sandboxes/llm_memory_local/uv.lock) is affected by CVE-2025-66418. In versions >=1.24 and <2.6.0, urllib3 does not bound the number of Content-Encoding decompression steps applied to a response body. A malicious or compromised HTTP server can return a body wrapped in a virtually unlimited stack of compression layers (gzip over gzip over deflate, ...), causing high CPU usage during decompression and massive memory allocation for the fully expanded data — a classic decompression-bomb denial-of-service. Impact: Remote attackers can exhaust CPU/memory in any code path that fetches responses from attacker-influenced endpoints (user-supplied URLs, webhooks, third-party APIs, or HTTP-reachable LLM/memory backends), leading to resource starvation or process crash. urllib3 is typically pulled in transitively (via requests/httpx/botocore), so the vulnerable library is likely loaded even if never imported directly. Risk level: HIGH — remote, low-complexity denial-of-service with no authentication required when untrusted endpoints are requested; no data exposure, but full availability loss of affected services. Remediation: Upgrade to urllib3 >= 2.6.0, which caps the decompression chain, and re-lock the project so the resolved/hashed artifacts are consistent.

Something like this might fix it:

Preferred fix — regenerate the lockfile with uv (do not hand-edit uv.lock hashes):

```bash
# run inside sandboxes/llm_memory_local/
uv lock --upgrade-package urllib3
uv sync --upgrade-package urllib3
```

To prevent regression, add a floor constraint in pyproject.toml:

```diff
--- a/sandboxes/llm_memory_local/pyproject.toml
+++ b/sandboxes/llm_memory_local/pyproject.toml
@@
 [project]
 dependencies = [
     ...
+    # Floor pinned to remediate CVE-2025-66418 (unbounded decompression-chain DoS)
+    "urllib3>=2.6.0",
 ]
```

The lock command produces this change in uv.lock:

```diff
--- a/sandboxes/llm_memory_local/uv.lock
+++ b/sandboxes/llm_memory_local/uv.lock
@@
 [[package]]
 name = "urllib3"
-version = "2.5.0"
+version = "2.6.0"
 source = { registry = "https://pypi.org/simple" }
 sdist = { url = "https://files.pythonhosted.org/.../urllib3-2.6.0.tar.gz", hash = "sha256:<new>" }
 wheels = [
-    { url = "https://files.pythonhosted.org/.../urllib3-2.5.0-py3-none-any.whl", hash = "sha256:<old>" },
+    { url = "https://files.pythonhosted.org/.../urllib3-2.6.0-py3-none-any.whl", hash = "sha256:<new>" },
 ]
```

Verification:

```bash
uv tree | grep urllib3          # confirm 2.6.0 is resolved
trivy fs sandboxes/llm_memory_local/  # re-scan; CVE-2025-66418 should no longer be reported
```

For reference: rule CVE-2025-66418. Rated high.

I may be wrong about this one — closing it costs you nothing if so.


Found with automated scanning (RedGem) and reviewed before opening. If it is not useful, closing it is completely fine.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions