One join, two identifier systems
Real artifacts from a network scan of a Python web server and a dependency scan of requests 2.31.0
Server: SimpleHTTP/0.6 Python/3.13.16requests==2.31.0Breaks when code is vendored, run by npx, or a service hides its banner.
cpe:/a:python:simplehttpserver:0.6Python 3.13.16 survives only as free textpkg:pypi/requests@2.31.0Ecosystem, name, and version, exactlyBreaks when a distro backports a fix, or a CPE names the wrong product.
Breaks when no identifier exists, aliases are not merged, or no advisory has been published yet.
Breaks when severity is used without context.
