HabrJuly 24, 2026🇷🇺Translated from Russian

Should Python Libraries Raise Minimum Dependency Versions to Block Vulnerable Releases?

Seth Larson of the Python Software Foundation has advised against automatically raising the minimum version of a dependency in a library’s metadata when a vulnerability is found. He argues that such metadata should describe only compatibility, leaving security control of the final build to the application.

The discussion began after a proposed pull request for an example library changed its urllib3 requirement from urllib3>=2 to urllib3>=2.6.3 following disclosure of a vulnerability affecting versions up to 2.6.2. Larson maintains that dependency ranges exist to express compatibility, not to enforce security fixes that the library does not ship itself.

According to the article, adopting this practice at scale would create unsustainable workload. More than 10,000 packages on the Python Package Index list urllib3 as a direct dependency. Similar numbers apply to numpy (approximately 80,000 dependents), requests (72,000), and pandas (55,000). Releasing new versions of every affected project after each published CVE would be impractical.

The recommended approach places responsibility on application owners. They should maintain a lockfile (requirements.txt with hashes, pylock.toml, or uv.lock) that records exact versions used in a build. Tools such as pip-audit or composition analysis solutions can then compare the resolved dependency graph against known vulnerabilities.

Exceptions are acknowledged. When a security fix removes functionality or breaks backward compatibility, adjusting the allowed range may be justified. Likewise, if an existing constraint prevents users from reaching a patched version, maintainers should consider widening or shifting the range to enable the secure update.

CodeScoring concludes that version bounds may reflect security requirements, yet they do not replace proper vulnerability management of the final product. Maintainers should publish affected and fixed version data, verify compatibility, and avoid blocking users from safe versions, while application owners retain control over the concrete dependency tree.

Related articles

HispasecSupply Chain & Open Source

GitHub and PyPI Add Time-Based Defenses Against Supply Chain Attacks

GitHub and PyPI have introduced new time-based barriers to slow down supply chain attacks. Dependabot now waits a default of 72 hours before proposing version updates, while PyPI rejects new files added to releases older than 14 days. The changes target non-security version updates and attempts to poison older stable releases. Security updates remain immediate, and the cooldown can be adjusted via dependabot.yml. PyPI's restriction addresses risks from compromised tokens or CI/CD pipelines that allow malicious artifacts on past versions. The measures were implemented in July 2026 following incidents involving projects like LiteLLM and Telnyx.

HispasecSupply Chain & Open Source

GitHub and PyPI Introduce Time-Based Defenses Against Supply Chain Attacks

GitHub and PyPI have activated new time-based barriers to slow down supply chain attacks. Dependabot now waits a default of 72 hours before proposing version updates, while PyPI rejects new files added to releases older than 14 days. The changes target non-security version updates and attempts to poison older stable releases. Security updates remain immediate, and the cooldown can be adjusted via dependabot.yml. The PyPI restriction, effective since July 8 2026, addresses risks from compromised tokens or CI/CD pipelines. Both platforms aim to give the community time to detect malicious packages before widespread adoption.

HabrSupply Chain & Open Source

Container Image Risks: Why Skipping Verification Today Breaks Your Service Tomorrow

Technical leader Nikita from Cloud.ru details four recurring container security failures observed across client environments. The article examines untracked vulnerabilities in high-privilege components such as the NVIDIA GPU operator, supply-chain compromises affecting even trusted tools like Trivy, persistent secret leakage patterns, and CI/CD pipeline exposure. Real incidents include a 2025 NVIDIA container toolkit exploit that enabled lateral movement to worker nodes and a 2026 Trivy GitHub compromise that poisoned over seventy image tags. The author stresses that pinning to image tags is insufficient and recommends full SHA256 hashes, private registries with caching, Cosign signatures validated by Kyverno or Connaisseur, and pre-commit secret scanning. Practical recommendations include automated CVE notifications and immediate patching of privileged components rather than waiting for sprint cycles.

HabrSupply Chain & Open Source

Corporate Nextcloud Security Gaps: Default Settings, Antivirus Failures and Open Source Integration Challenges

A detailed analysis from K2Tech reveals that corporate Nextcloud deployments require extensive security hardening beyond default open source configurations. The article examines integration with LDAP, WAF, Anti-DDoS and multiple antivirus engines including ClamAV, Kaspersky Scan Engine and PT Sandbox over ICAP. Critical issues include antivirus plugins bypassing scans during unreachable states or chunked file uploads via MOVE commands, allowing infected files to reach S3 storage. Performance tests on identical 4 vCPU and 16 GB RAM hardware showed Kaspersky Scan Engine delivering the highest throughput while PT Sandbox imposed heavy CPU loads. The piece also covers architecture spanning MariaDB Galera, Redis, Elasticsearch and multi-AZ S3, plus the need for custom parameter tuning and continuous testing due to frequent Nextcloud releases. Overall, the report emphasizes that true corporate-grade security for open source file sharing demands significant post-installation effort and monitoring.