PRP: Fix `haskell/cabal` and `haskell/stacklock` to emit packages with correct package URL
- Dominant language
- Go
- Stars
- 644
- Forks
- 201
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 29
Description
- **Software distribution method or binary type**: `cabal.project.freeze` and `stack.lock`
- **Popularity of distribution method**:
Cabal is the official and foundational package/build system of the Haskell ecosystem and is used by the vast majority of Haskell libraries published on Hackage. Hackage has hosted packages since 2007 and now indexes Millions of packages along with 100s of GBs of package metadata and archives, making Cabal the dominant low-level tooling standard in the ecosystem.
Stack became extremely popular around 2015 because it solved dependency-management issues through reproducible snapshot-based environments and easier onboarding. Its curated Stackage ecosystem has tracked and built more than 51,000 package versions across many Long-Term Support (LTS) snapshots, and Stack remains widely used in CI pipelines, enterprise projects, and legacy Haskell applications.
- **Any critical, emergent vulnerability associated with software from the distribution method**: `hackage-server` affected by CVE-2026-40472. Here's a direct link to the [osv.dev entry](https://osv.dev/vulnerability/HSEC-2026-0004) for the mentioned vulnerability.
- **Problem with the mentioned extractors**
Both extractors plugins: `haskell/cabal` and `haskell/stacklock` construct packages with wrong purl type (`TypeHeskell`) but in reality there's no such package URL even in the upstream purl repos. The correct type is `TypeHackage`. Currently, osv.dev contains 100+ entries for `Hackage` ecosystem, but there are no vulnerability records for `Heskell` ecosystem. This is because Hackage is the central open-source software repository and package archive for the Haskell programming language.
If we were to scan a system holding heskell packages using scalibr, then it won't be able to find any vulnerabilities at all due to the incorrect purl in these two extractors.
- **Resources**:
* [Cabal Homepage](https://www.haskell.org/cabal/)
* [Stack Homepage](https://www.stackage.org/)
* [OSV DEV Hackage Ecosystem](https://osv.dev/list?ecosystem=Hackage)
Contributor guide
Assessment
This issue has not been assessed yet.