Bug 2549707 (CVE-2026-105668)

Summary: CVE-2026-105668 hex: hex: Release cooldown protection bypass via retired package releases
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: abarbaro, akhatavk, alizardo, anpicker, anthomas, aos-team-art-private, aprice, asdas, bbrownin, blitton, brasmith, cochase, dbosanac, doconnor, dpaolell, dranck, dschmidt, eborisov, eglynn, ehelms, gbenhaim, ggainey, gotiwari, hasun, hoberger, ikhan, jcantril, jchui, jdelft, jfula, jhe, jhorak, jjoyce, jlanda, jowilson, jpasqual, jpretori, jreimann, jsamir, jschluet, jupierce, juwatts, kshier, ktsao, lball, lgarciaa, lhh, lpele, mbarnett, mbiarnes, mburns, mdellweg, mdessi, mgarciac, mhulan, mrizzi, mvyas, nboldt, ngough, niyer, nmoumoul, nyancey, oaljalju, oezr, ometelka, osousa, pcattana, pcreech, ppalepu, ppostler, prdhamdh, psrna, ptisnovs, rbobbitt, rchan, rekumar, rhel-process-autobot, rojacob, sarad, sghai, sidsharm, simaishi, smallamp, sprizend, stcannon, suppawar, syedriko, tmalecek, twaugh, veshanka, vlaad, vvoronko, watson-tool-maintainers, xdharmai, yguenane
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in hex. This vulnerability allows an attacker with package owner privileges to bypass release-age cooldown security controls when publishing a new package release. By retiring an existing package release, the attacker triggers an automatic cooldown bypass, causing downstream dependency updates to immediately pull the newly published release without observing the required waiting period. Consequently, this flaw can enable the rapid deployment of unvetted or malicious dependencies into downstream environments.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2555749, 2555750    
Bug Blocks:    

Description OSIDB Bzimport 2026-10-12 15:51:32 UTC
Protection Mechanism Failure vulnerability in hexpm hex allows the owner of a package, or an attacker who has taken over the owner's account, to get a newly published release past the release-age cooldown.

The cooldown (cooldown config, HEX_COOLDOWN) withholds versions younger than the configured age during dependency resolution. When the release of a package locked in mix.lock is retired or has a security advisory, Hex.RemoteConverger.build_cooldown_bypass/3 and Hex.RemoteConverger.unsafe_lock_bypass/1 lift the cooldown for every version of that package and of every package the locked release depends on, so that mix deps.update can move off the unsafe release. Retiring a release needs the same package owner permission as publishing one. An attacker who publishes a malicious release can retire the currently locked release, and the next mix deps.update that unlocks the package selects the new release regardless of its age. Hex.Registry.Cooldown.versions/2 checks the bypass by package name alone, so the bypass also covers packages with the same name in other repositories. Cooldown configured through an organization dependency policy is not affected.

This issue affects hex: from 2.5.0 before 2.5.2.