← Back to CVE Explorer

CVE-2026-118485

Full vulnerability record from the local CVENow database.

Description

Axel Download Accelerator 2.17.14 and earlier performs URL percent-decoding (http_decode()) on the output filename after the URL has been parsed and the filename component extracted. This allows an attacker to embed %2e%2e%2f (URL-encoded ../) sequences in the URL path. These sequences survive the URL parser intact (they contain no literal / characters) but are decoded into directory traversal sequences before the output file is opened for writing. As a result, a crafted URL can cause axel to write downloaded content to arbitrary filesystem paths relative to the current working directory.

Severity
HIGH
CVSS score
7.0 (v4.0)
Vulnerability status
Deferred
Source identifier
6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd
Published
2026-10-28 12:17:40.370000
Last modified
2026-10-28 15:24:56.033000
View original CVE JSON
{
  "id": "CVE-2026-118485",
  "sourceIdentifier": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd",
  "published": "2026-10-28T12:17:40.370",
  "lastModified": "2026-10-28T15:24:56.033",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Axel Download Accelerator 2.17.14 and earlier performs URL percent-decoding (http_decode()) on the output filename after the URL has been parsed and the filename component extracted. This allows an attacker to embed %2e%2e%2f (URL-encoded ../) sequences in the URL path. These sequences survive the URL parser intact (they contain no literal / characters) but are decoded into directory traversal sequences before the output file is opened for writing. As a result, a crafted URL can cause axel to write downloaded content to arbitrary filesystem paths relative to the current working directory."
    }
  ],
  "affected": [
    {
      "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd",
      "affectedData": [
        {
          "vendor": "Axel Download Accelerator",
          "product": "Axel",
          "defaultStatus": "unaffected",
          "repo": "https://github.com/axel-download-accelerator/axel/",
          "versions": [
            {
              "version": "0",
              "lessThanOrEqual": "2.17.14",
              "versionType": "git",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/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.0,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "NONE",
          "privilegesRequired": "NONE",
          "userInteraction": "ACTIVE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "HIGH",
          "vulnAvailabilityImpact": "HIGH",
          "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": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H",
          "baseScore": 8.1,
          "baseSeverity": "HIGH",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 5.2
      }
    ]
  },
  "weaknesses": [
    {
      "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-24"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://advisories.orangecyberdefense.com/advisories/167",
      "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd"
    },
    {
      "url": "https://github.com/axel-download-accelerator/axel/issues/477",
      "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd"
    },
    {
      "url": "https://github.com/axel-download-accelerator/axel/milestone/22",
      "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd"
    },
    {
      "url": "https://github.com/axel-download-accelerator/axel/pull/483/changes/4e76e1a1dd1c4ea11b445e2c45e4ee257c76314e",
      "source": "6064c9f1-42e5-4cc5-a67a-1636d7a9d3fd"
    }
  ]
}