6.6
MEDIUM CVSS 3.1
CVE-2026-28684
python-dotenv: Symlink following in set_key allows arbitrary file overwrite via cross-device rename fallback
Description

python-dotenv reads key-value pairs from a .env file and can set them as environment variables. Prior to version 1.2.2, `set_key()` and `unset_key()` in python-dotenv follow symbolic links when rewriting `.env` files, allowing a local attacker to overwrite arbitrary files via a crafted symlink when a cross-device rename fallback is triggered. Users should upgrade to v.1.2.2 or, as a workaround, apply the patch manually.

INFO

Published Date :

April 20, 2026, 5:16 p.m.

Last Modified :

April 27, 2026, 1:44 p.m.

Remotely Exploit :

No
Affected Products

The following products are affected by CVE-2026-28684 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Saurabh-kumar python-dotenv
CVSS Scores
The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and displays CVSS scores from various sources for each CVE.
Score Version Severity Vector Exploitability Score Impact Score Source
CVSS 3.1 MEDIUM [email protected]
Solution
Upgrade python-dotenv to v1.2.2 or apply the provided patch to fix arbitrary file overwrites.
  • Upgrade python-dotenv to version 1.2.2.
  • Apply the vendor patch manually.
  • Avoid using symbolic links with .env files.
Public PoC/Exploit Available at Github

CVE-2026-28684 has a 4 public PoC/Exploit available at Github. Go to the Public Exploits tab to see the list.

References to Advisories, Solutions, and Tools

Here, you will find a curated list of external links that provide in-depth information, practical solutions, and valuable tools related to CVE-2026-28684.

URL Resource
https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311 Patch
https://github.com/theskumar/python-dotenv/releases/tag/v1.2.2 Release Notes
https://github.com/theskumar/python-dotenv/security/advisories/GHSA-mf9w-mj56-hr94 Exploit Patch Vendor Advisory
https://github.com/theskumar/python-dotenv/security/advisories/GHSA-mf9w-mj56-hr94 Exploit Patch Vendor Advisory
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-28684 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

NotebookLM MCP CLI - Access NotebookLM via Claude with security fixes and FastMCP 1.0 compatibility

Python

Updated: 2 weeks, 6 days ago
1 stars 0 fork 0 watcher
Born at : March 18, 2026, 5:07 a.m. This repo has been linked 17 different CVEs too.

Make AI agents and AI workflows measurably reliable. Epistemic measurement, Noetic RAG, Sentinel gating, and grounded calibration for Claude Code and beyond

ai-agents ai-workflows ai-memory ai-os epistemic-ai anti-confabulation

Makefile Python Shell Dockerfile PowerShell Ruby

Updated: 2 weeks, 3 days ago
213 stars 25 fork 25 watcher
Born at : Nov. 1, 2025, 4:08 p.m. This repo has been linked 3 different CVEs too.

MVidarr - The Music Video Management System

HTML Python Shell JavaScript CSS TypeScript Batchfile Dockerfile Mako Go Template

Updated: 1 day, 11 hours ago
40 stars 1 fork 1 watcher
Born at : July 24, 2025, 1:49 a.m. This repo has been linked 6 different CVEs too.

This software will connect to a pub/sub broker used by Chirpstack, subscribe to the device message topic and forward this message to a Azure IoT Hub.

Python Shell Dockerfile

Updated: 2 weeks ago
0 stars 0 fork 0 watcher
Born at : March 30, 2020, 10:16 p.m. This repo has been linked 2 different CVEs too.

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-28684 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-28684 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • Initial Analysis by [email protected]

    Apr. 27, 2026

    Action Type Old Value New Value
    Added CPE Configuration OR *cpe:2.3:a:saurabh-kumar:python-dotenv:*:*:*:*:*:python:*:* versions up to (excluding) 1.2.2
    Added Reference Type GitHub, Inc.: https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311 Types: Patch
    Added Reference Type GitHub, Inc.: https://github.com/theskumar/python-dotenv/releases/tag/v1.2.2 Types: Release Notes
    Added Reference Type CISA-ADP: https://github.com/theskumar/python-dotenv/security/advisories/GHSA-mf9w-mj56-hr94 Types: Exploit, Patch, Vendor Advisory
    Added Reference Type GitHub, Inc.: https://github.com/theskumar/python-dotenv/security/advisories/GHSA-mf9w-mj56-hr94 Types: Exploit, Patch, Vendor Advisory
  • CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0

    Apr. 20, 2026

    Action Type Old Value New Value
    Added Reference https://github.com/theskumar/python-dotenv/security/advisories/GHSA-mf9w-mj56-hr94
  • New CVE Received by [email protected]

    Apr. 20, 2026

    Action Type Old Value New Value
    Added Description python-dotenv reads key-value pairs from a .env file and can set them as environment variables. Prior to version 1.2.2, `set_key()` and `unset_key()` in python-dotenv follow symbolic links when rewriting `.env` files, allowing a local attacker to overwrite arbitrary files via a crafted symlink when a cross-device rename fallback is triggered. Users should upgrade to v.1.2.2 or, as a workaround, apply the patch manually.
    Added CVSS V3.1 AV:L/AC:L/PR:L/UI:R/S:U/C:N/I:H/A:H
    Added CWE CWE-59
    Added CWE CWE-61
    Added Reference https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311
    Added Reference https://github.com/theskumar/python-dotenv/releases/tag/v1.2.2
    Added Reference https://github.com/theskumar/python-dotenv/security/advisories/GHSA-mf9w-mj56-hr94
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.