All vulnerabilities
CVE-2026-14966GHSA-xpf3-p7gm-7756PYSEC-2026-3719

BBOT's Symlink guard bypass in unarchive module allows planting symlinks during extraction

Black Lantern Security bbotpipLibraries & packages
CVSS
3.1Low
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.38%Chance of exploitation activity in the next 30 days, higher than 31% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in3.0.0Fixed versionGitHub
Published8 Jul 2026Updated 14 Oct 2026CVE List

What fixes it

  • 3.0.0bbot, pipGitHub
  • 3.0.0bbot, PyPIOSVpip install "bbot>=3.0.0"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

BBOT's unarchive module rejects archives containing symlink entries before extraction, but for zip and 7z archives it failed to detect symlinks whose listing carries a DOS-attribute prefix before the unix mode, as produced by legacy versions of p7zip. Such an archive, downloaded and extracted during a scan (for example via filedownload), bypassed the guard and caused an attacker-controlled symlink to be written into the extraction directory. The effect is limited to planting the symlink (its target is not written through), and only hosts using such a legacy p7zip build are affected; current mainline 7-Zip is not.

Text from CVE List

Affected versions 53

  • bbot, pip>= 2.3.1, < 3.0.0GitHub
  • BBOTaffected: 2.3.1 through 2.8.6CVE List
  • bbot, PyPIfrom 2.3.1, fixed in 3.0.0OSV
  • bbot, PyPI2.3.1OSV
  • bbot, PyPI2.3.1.5815rc0OSV
  • bbot, PyPI2.3.1.5818rc0OSV
  • bbot, PyPI2.3.1.5820rc0OSV
  • bbot, PyPI2.3.2OSV
  • bbot, PyPI2.3.2.5825rc0OSV
  • bbot, PyPI2.3.2.5827rc0OSV
  • bbot, PyPI2.3.2.5829rc0OSV
  • bbot, PyPI2.3.2.5832rc0OSV
  • bbot, PyPI2.3.2.5836rc0OSV
  • bbot, PyPI2.3.2.5838rc0OSV
  • bbot, PyPI2.3.2.5841rc0OSV
  • bbot, PyPI2.3.2.5848rc0OSV
  • bbot, PyPI2.3.2.5850rc0OSV
  • bbot, PyPI2.3.2.5855rc0OSV
  • bbot, PyPI2.3.2.5874rc0OSV
  • bbot, PyPI2.3.2.5889rc0OSV
  • bbot, PyPI2.3.2.5893rc0OSV
  • bbot, PyPI2.3.2.5897rc0OSV
  • bbot, PyPI2.3.2.5904rc0OSV
  • bbot, PyPI2.3.2.5906rc0OSV
  • bbot, PyPI2.3.2.5909rc0OSV
  • bbot, PyPI2.3.2.5913rc0OSV
  • bbot, PyPI2.3.2.5915rc0OSV
  • bbot, PyPI2.3.2.5927rc0OSV
  • bbot, PyPI2.3.2.5938rc0OSV
  • bbot, PyPI2.3.2.5942rc0OSV
  • bbot, PyPI2.3.2.5944rc0OSV
  • bbot, PyPI2.3.2.5950rc0OSV
  • bbot, PyPI2.3.2.5958rc0OSV
  • bbot, PyPI2.3.2.5967rc0OSV
  • bbot, PyPI2.3.2.5971rc0OSV
  • bbot, PyPI2.4.0OSV
  • bbot, PyPI2.4.0.5974rc0OSV
  • bbot, PyPI2.4.0.5977rc0OSV
  • bbot, PyPI2.4.0.5984rc0OSV
  • bbot, PyPI2.4.0.5986rc0OSV
  • bbot, PyPI2.4.0.5988rc0OSV
  • bbot, PyPI2.4.0.5992rc0OSV
  • bbot, PyPI2.4.0.5995rc0OSV
  • bbot, PyPI2.4.0.5997rc0OSV
  • bbot, PyPI2.4.0.5999rc0OSV
  • bbot, PyPI2.4.0.6005rc0OSV
  • bbot, PyPI2.4.0.6007rc0OSV
  • bbot, PyPI2.4.0.6031rc0OSV
  • bbot, PyPI2.4.0.6037rc0OSV
  • bbot, PyPI2.4.0.6039rc0OSV
  • bbot, PyPI2.4.0.6045rc0OSV
  • bbot, PyPI2.4.0.6050rc0OSV
  • bbot, PyPI2.4.0.6067rc0OSV

References 6