Skip to content
Heist/ feed
Back to feed
Critical

Security advisory

Type: advisorySources: OSVCVE: CVE-2020-20277

There are multiple unauthenticated directory traversal vulnerabilities in different FTP commands in uftpd FTP server versions 2.7 to 2.10 due to improper implementation of a chroot jail in common.c's compose_abspath function that can be abused to read or write to arbitrary files on the filesystem, leak process memory, or potentially lead to remote code execution.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2020-20277
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 12:34 UTC · Revision 1

Source evidence

CVE-2020-20277

core-osv · Original source

Published 18 Dec 2020, 19:15 UTC

There are multiple unauthenticated directory traversal vulnerabilities in different FTP commands in uftpd FTP server versions 2.7 to 2.10 due to improper implementation of a chroot jail in common.c's compose_abspath function that can be abused to read or write to arbitrary files on the filesystem, leak process memory, or potentially lead to remote code execution.

osv:CVE-2020-20277
Complete source record
{
  "id": "83bc3b2bbb11b1fc594d9917a3d64c616c3c34b5c0551f37c5ba08cdcbca1ad6",
  "url": "https://osv.dev/vulnerability/CVE-2020-20277",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2020-20277",
    "summary": "There are multiple unauthenticated directory traversal vulnerabilities in different FTP commands in uftpd FTP server versions 2.7 to 2.10 due to improper implementation of a chroot jail in common.c's compose_abspath function that can be abused to read or write to arbitrary files on the filesystem, leak process memory, or potentially lead to remote code execution.",
    "evidence": "osv:CVE-2020-20277",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2020-20277",
      "aliases": [
        "CVE-2020-20277"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/troglobit/uftpd",
              "type": "GIT",
              "events": [
                {
                  "introduced": "b9c4a6fcb41427e1b3468141609173a41be6d947"
                },
                {
                  "last_affected": "e82248683ed7d53be1e01526f7b2a53dde545ef9"
                },
                {
                  "fixed": "455b47d3756aed162d2d0ef7f40b549f3b5b30fe"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:troglobit:uftpd:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "2.7"
                      },
                      {
                        "last_affected": "2.10"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "455b47d3756aed162d2d0ef7f40b549f3b5b30fe"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.10",
            "v2.9",
            "v2.8",
            "v2.7"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2020-20277.json",
            "vanir_signatures": [
              {
                "id": "CVE-2020-20277-6bb940c7",
                "digest": {
                  "threshold": 0.9,
                  "line_hashes": [
                    "108229206972147259569248804372767412868",
                    "276360762841382069748424337075868013451",
                    "242312807191981524080516238265272007214",
                    "250357959569044888915036652998736230067"
                  ]
                },
                "source": "https://github.com/troglobit/uftpd/commit/455b47d3756aed162d2d0ef7f40b549f3b5b30fe",
                "target": {
                  "file": "src/common.c"
                },
                "deprecated": false,
                "signature_type": "Line",
                "signature_version": "v1"
              }
            ],
            "vanir_signatures_modified": "2026-10-20T13:52:40Z"
          }
        }
      ],
      "modified": "2026-10-20T13:52:40.072548819Z",
      "provider": "osv",
      "references": [
        "https://arinerron.com/blog/posts/6",
        "https://github.com/troglobit/uftpd/commit/455b47d3756aed162d2d0ef7f40b549f3b5b30fe"
      ],
      "provider_metadata": {}
    },
    "related_cves": [
      {
        "value": "CVE-2020-20277",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 388331,
  "published_at": "2020-12-18T19:15:14.11+00:00"
}