{"dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": {"cveId": "CVE-2026-21620", "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db", "state": "PUBLISHED", "assignerShortName": "EEF", "dateReserved": "2026-01-01T03:46:45.934Z", "datePublished": "2026-02-20T10:57:08.620Z", "dateUpdated": "2026-11-11T19:48:42.293Z"}, "containers": {"cna": {"affected": [{"cpes": ["cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"], "defaultStatus": "unaffected", "modules": ["tftp_file"], "packageName": "otp", "packageURL": "pkg:software-id/erlang.org/otp", "product": "OTP", "programFiles": ["lib/inets/src/tftp/tftp_file.erl", "lib/tftp/src/tftp_file.erl"], "vendor": "Erlang", "versions": [{"changes": [{"at": "26.2.5.17", "status": "unaffected"}, {"at": "27.3.4.8", "status": "unaffected"}, {"at": "28.3.2", "status": "unaffected"}], "lessThan": "*", "status": "affected", "version": "17.0", "versionType": "otp"}]}, {"cpes": ["cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"], "defaultStatus": "unaffected", "modules": ["tftp_file"], "packageName": "inets", "packageURL": "pkg:otp/inets?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git", "product": "OTP", "programFiles": ["src/tftp/tftp_file.erl"], "repo": "https://github.com/erlang/otp", "vendor": "Erlang", "versions": [{"lessThan": "7.0", "status": "affected", "version": "5.10", "versionType": "otp"}]}, {"cpes": ["cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"], "defaultStatus": "unaffected", "modules": ["tftp_file"], "packageName": "tftp", "packageURL": "pkg:otp/tftp?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git", "product": "OTP", "programFiles": ["src/tftp_file.erl"], "repo": "https://github.com/erlang/otp", "vendor": "Erlang", "versions": [{"changes": [{"at": "1.1.1.1", "status": "unaffected"}, {"at": "1.2.2.1", "status": "unaffected"}, {"at": "1.2.4", "status": "unaffected"}], "lessThan": "*", "status": "affected", "version": "1.0", "versionType": "otp"}]}, {"collectionURL": "https://github.com", "cpes": ["cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*"], "defaultStatus": "unaffected", "modules": ["tftp_file"], "packageName": "erlang/otp", "packageURL": "pkg:github/erlang/otp", "product": "OTP", "programFiles": ["lib/inets/src/tftp/tftp_file.erl", "lib/tftp/src/tftp_file.erl"], "repo": "https://github.com/erlang/otp", "vendor": "Erlang", "versions": [{"changes": [{"at": "655fb95725ba2fb811740b57e106873833824344", "status": "unaffected"}, {"at": "3970738f687325138eb75f798054fa8960ac354e", "status": "unaffected"}, {"at": "696fdec922661d4a3cc528fc34bc24fae8d4ad8a", "status": "unaffected"}], "lessThan": "*", "status": "affected", "version": "07b8f441ca711f9812fad9e9115bab3c3aa92f79", "versionType": "git"}]}], "configurations": [{"lang": "en", "supportingMedia": [{"base64": false, "type": "text/html", "value": "<p>A TFTP server must be started and the TFTP port must be reachable by the attacker, using the <code>tftp</code> application (or the legacy <code>inets</code> TFTP service) with the <code>tftp_file</code> callback module configured with the <code>{root_dir, Dir}</code> option.</p>"}, {"base64": false, "type": "text/markdown", "value": "A TFTP server must be started and the TFTP port must be reachable by the attacker, using the `tftp` application (or the legacy `inets` TFTP service) with the `tftp_file` callback module configured with the `{root_dir, Dir}` option."}], "value": "A TFTP server must be started and the TFTP port must be reachable by the attacker, using the tftp application (or the legacy inets TFTP service) with the tftp_file callback module configured with the {root_dir, Dir} option."}], "cpeApplicability": [{"nodes": [{"cpeMatch": [{"criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*", "versionEndExcluding": "26.2.5.17", "versionStartIncluding": "17.0", "vulnerable": true}, {"criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*", "versionEndExcluding": "27.3.4.8", "versionStartIncluding": "27.0", "vulnerable": true}, {"criteria": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*", "versionEndExcluding": "28.3.2", "versionStartIncluding": "28.0", "vulnerable": true}], "negate": false, "operator": "OR"}], "operator": "AND"}], "credits": [{"lang": "en", "type": "finder", "value": "Luigino Camastra / Aisle Research"}, {"lang": "en", "type": "remediation reviewer", "value": "Jakub Witczak"}, {"lang": "en", "type": "remediation developer", "value": "Raimo Niskanen"}], "datePublic": "2026-02-20T10:57:08.000Z", "descriptions": [{"lang": "en", "supportingMedia": [{"base64": false, "type": "text/html", "value": "<p>Relative Path Traversal, Improper Isolation or Compartmentalization vulnerability in erlang otp erlang/otp (tftp_file modules), erlang otp inets (tftp_file modules), erlang otp tftp (tftp_file modules) allows Relative Path Traversal.</p>\n<p>This vulnerability is associated with program files <code>lib/tftp/src/tftp_file.erl</code>, <code>src/tftp_file.erl</code>.</p>\n<p>This issue affects OTP from OTP 17.0 before OTP 26.2.5.17, OTP 27.3.4.8, and OTP 28.3.2, corresponding to inets from 5.10 before 7.0, and tftp from 1.0 before 1.1.1.1, 1.2.2.1, and 1.2.4.</p>"}, {"base64": false, "type": "text/markdown", "value": "Relative Path Traversal, Improper Isolation or Compartmentalization vulnerability in erlang otp erlang/otp (tftp_file modules), erlang otp inets (tftp_file modules), erlang otp tftp (tftp_file modules) allows Relative Path Traversal.\n\nThis vulnerability is associated with program files `lib/tftp/src/tftp_file.erl`, `src/tftp_file.erl`.\n\nThis issue affects OTP from OTP\u00a017.0 before OTP\u00a026.2.5.17, OTP\u00a027.3.4.8, and OTP\u00a028.3.2, corresponding to inets from 5.10 before 7.0, and tftp from 1.0 before 1.1.1.1, 1.2.2.1, and 1.2.4."}], "value": "Relative Path Traversal, Improper Isolation or Compartmentalization vulnerability in erlang otp erlang/otp (tftp_file modules), erlang otp inets (tftp_file modules), erlang otp tftp (tftp_file modules) allows Relative Path Traversal.\n\nThis vulnerability is associated with program files lib/tftp/src/tftp_file.erl, src/tftp_file.erl.\n\nThis issue affects OTP from OTP\u00a017.0 before OTP\u00a026.2.5.17, OTP\u00a027.3.4.8, and OTP\u00a028.3.2, corresponding to inets from 5.10 before 7.0, and tftp from 1.0 before 1.1.1.1, 1.2.2.1, and 1.2.4."}], "impacts": [{"capecId": "CAPEC-139", "descriptions": [{"lang": "en", "value": "CAPEC-139 Relative Path Traversal"}]}], "metrics": [{"cvssV4_0": {"Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "Safety": "NOT_DEFINED", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "attackVector": "NETWORK", "baseScore": 2.3, "baseSeverity": "LOW", "privilegesRequired": "LOW", "providerUrgency": "NOT_DEFINED", "subAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "userInteraction": "NONE", "valueDensity": "NOT_DEFINED", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N", "version": "4.0", "vulnAvailabilityImpact": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnerabilityResponseEffort": "NOT_DEFINED"}, "format": "CVSS", "scenarios": [{"lang": "en", "value": "GENERAL"}]}], "problemTypes": [{"descriptions": [{"cweId": "CWE-23", "description": "CWE-23 Relative Path Traversal", "lang": "en", "type": "CWE"}]}], "providerMetadata": {"orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db", "shortName": "EEF", "dateUpdated": "2026-11-11T19:48:42.293Z"}, "references": [{"name": "TFTP Path Traversal", "tags": ["vendor-advisory", "related"], "url": "https://github.com/erlang/otp/security/advisories/GHSA-hmrc-prh3-rpvp"}, {"name": "EEF CNA record for CVE-2026-21620", "tags": ["related"], "url": "https://cna.erlef.org/cves/CVE-2026-21620.html"}, {"name": "OSV record EEF-CVE-2026-21620", "tags": ["related"], "url": "https://osv.dev/vulnerability/EEF-CVE-2026-21620"}, {"name": "Erlang/OTP version ordering", "tags": ["x_version-scheme"], "url": "https://www.erlang.org/doc/system/versions.html#order-of-versions"}, {"tags": ["patch"], "url": "https://github.com/erlang/otp/pull/10706"}, {"name": "Introducing commit 07b8f44 in erlang/otp", "tags": ["related"], "url": "https://github.com/erlang/otp/commit/07b8f441ca711f9812fad9e9115bab3c3aa92f79"}, {"name": "Fix commit 655fb95 in erlang/otp", "tags": ["patch"], "url": "https://github.com/erlang/otp/commit/655fb95725ba2fb811740b57e106873833824344"}, {"name": "Fix commit 3970738 in erlang/otp", "tags": ["patch"], "url": "https://github.com/erlang/otp/commit/3970738f687325138eb75f798054fa8960ac354e"}, {"name": "Fix commit 696fdec in erlang/otp", "tags": ["patch"], "url": "https://github.com/erlang/otp/commit/696fdec922661d4a3cc528fc34bc24fae8d4ad8a"}], "source": {"discovery": "EXTERNAL"}, "title": "TFTP Path Traversal"}, "adp": [{"metrics": [{"other": {"type": "ssvc", "content": {"timestamp": "2026-02-20T13:36:03.423294Z", "id": "CVE-2026-21620", "options": [{"Exploitation": "none"}, {"Automatable": "no"}, {"Technical Impact": "partial"}], "role": "CISA Coordinator", "version": "2.0.3"}}}], "title": "CISA ADP Vulnrichment", "providerMetadata": {"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-02-20T13:36:39.878Z"}}]}}