OSV 1.4.0 · github-reviewed · 修改于 2026-06-09 07:27
发布时间
2026-05-09 03:09
GitHub 审查时间
2026-05-09 03:09
NVD 发布时间
2026-05-27 01:16
源文件
advisories/github-reviewed/2026/05/GHSA-fp53-qcf8-2xx2/GHSA-fp53-qcf8-2xx2.json
Bugsink’s webhook URL validation in versions 2.1.2 and earlier could be (partially) bypassed because of a mismatch in URL parsing.
In some malformed URLs, Python’s standard URL parser (urllib) and the HTTP client stack (requests / urllib3) do not agree on which host is actually being targeted. That could allow a webhook URL to pass Bugsink’s outbound-host checks while the actual HTTP request is sent somewhere else.
This issue affects Bugsink’s outbound webhook integrations.
An attacker who can supply or influence a webhook URL may be able to make Bugsink send an outbound HTTP POST request to a host that should have been blocked by the webhook validation logic, including loopback, private, or otherwise non-allowlisted destinations.
The practical impact is limited:
In other words, this is a real validation bypass, but it is narrower than a full arbitrary-request primitive.
The original validation logic parsed webhook URLs with Python’s urllib.parse.urlparse, then sent the request with requests.post.
For malformed inputs involving backslashes and @, those components can disagree about where the authority ends and which hostname is the real target. A URL may therefore appear to target an allowlisted public hostname during validation, while the HTTP client actually connects to a different host.
The fix has two parts:
Together, these changes remove the parser discrepancy and make webhook URL handling stricter and more predictable.
If users cannot upgrade immediately: