Every CVE Search/ Get API key

HSEC-2025-0005

cabal-install dependency confusion

No scoreFix available

cabal-install dependency confusion

For cabal-install < 3.4.0.0 and where multiple repositories are configured, the resolver picks the highest available version across all repositories. Where a package is only defined in a private repository, this behaviour leads to a dependency confusion supply chain vulnerability. If the private package name becomes known, a malicious actor can claim the name in the public repository and publish a malicious version at a higher version number.

Default cabal-install configurations that only use the hackage.haskell.org repository are not affected. Configurations that use curated private repositories exclusively are also not affected.

Mitigations

cabal-install version 3.4.0.0 and higher provide an override option in the repository configuration. It marks the associated repository as canonical for all packages defined in that repository. No other repositories will be considered. For example:

-- For packages in repo.example.com,
-- only versions in repo.example.com are considered
active-repositories:
  , hackage.haskell.org
  , repo.example.com:override

Users and organisations using private repositories that contain private packages in addition to public repositories MUST use the override option to prevent dependency confusion attacks.

Alternatively, projects and organisations can run a private instance of hackage-server and carefully curate and review its contents. Using that instance exclusively defeats supply chain attacks including dependency confusion. For cabal-install < 3.4 and where using multiple repositories, this is the only effective mitigation against dependency confusion attacks.

What each source reports

OSV No score

cabal-install dependency confusion

cabal-install dependency confusion

For cabal-install < 3.4.0.0 and where multiple repositories are configured, the resolver picks the highest available version across all repositories. Where a package is only defined in a private repository, this behaviour leads to a dependency confusion supply chain vulnerability. If the private package name becomes known, a malicious actor can claim the name in the public repository and publish a malicious version at a higher version number.

Default cabal-install configurations that only use the hackage.haskell.org repository are not affected. Configurations that use curated private repositories exclusively are also not affected.

Mitigations

cabal-install version 3.4.0.0 and higher provide an override option in the repository configuration. It marks the associated repository as canonical for all packages defined in that repository. No other repositories will be considered. For example:

-- For packages in repo.example.com,
-- only versions in repo.example.com are considered
active-repositories:
  , hackage.haskell.org
  , repo.example.com:override

Users and organisations using private repositories that contain private packages in addition to public repositories MUST use the override option to prevent dependency confusion attacks.

Alternatively, projects and organisations can run a private instance of hackage-server and carefully curate and review its contents. Using that instance exclusively defeats supply chain attacks including dependency confusion. For cabal-install < 3.4 and where using multiple repositories, this is the only effective mitigation against dependency confusion attacks.

Record
HSEC-2025-0005
Updated
2026-11-02

Affected packages

Affected packages
PackageAffectedFixed
cabal-install
Hackage
1.0.0.0 up to 3.4.0.0, plus listed versions
1.16.01.16.0.11.16.0.21.16.1.01.18.0
Show 39 moreShow less
1.18.0.11.18.0.21.18.0.31.18.0.41.18.0.51.18.0.61.18.0.71.18.0.81.18.1.01.18.2.01.20.0.01.20.0.11.20.0.21.20.0.31.20.0.41.20.0.51.20.0.61.20.1.01.20.2.01.22.0.01.22.0.11.22.2.01.22.3.01.22.4.01.22.5.01.22.6.01.22.7.01.22.8.01.22.9.01.24.0.01.24.0.11.24.0.22.0.0.02.0.0.12.2.0.02.4.0.02.4.1.03.0.0.03.2.0.0
3.4.0.0

History

History
RecordedChangedSources
first indexedOSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

HSEC-2025-0005 is a vulnerability with no CVSS score yet in cabal-install, published November 14, 2025. No source lists public exploit code. Fixed in cabal-install 3.4.0.0.

References

MoveEnter Open