Executive brief
stigmem-node is a data management platform that allows users to create webhook subscriptions to receive notifications when data changes. An authenticated attacker can create a webhook subscription with a malicious internal address (such as localhost or private IP ranges) as the delivery destination. When a matching data change event occurs, the server automatically makes an HTTP POST request to the attacker-controlled internal address, enabling blind SSRF attacks on internal services and infrastructure.
Technical details
The vulnerability is a Server-Side Request Forgery (SSRF) in the webhook subscription feature. The codebase contains an `assert_safe_url()` function that blocks loopback (127.0.0.0/8), private (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local (169.254.0.0/16), and metadata-style destinations, but this validation is never applied to the `delivery_address` parameter during subscription creation or before webhook delivery. An authenticated user can POST a subscription with an arbitrary `delivery_address` value; when a matching fact-change event is triggered, the subscription delivery worker makes an unvalidated HTTP POST request to that address. The attack requires authentication and knowledge of a matching entity/relation, but the malicious webhook is persistent and retried, and even blind failures provide an internal reachability oracle. Patched in version 0.9.0a11.
Affected products
- eidetic-labs stigmem-node < 0.9.0a11
Timeline
- 2026-06-12: disclosed
- 2026-06-12: patched: Version 0.9.0a11 released
References
- https://api.github.com/users/chaitanyagarware
- https://github.com/chaitanyagarware
- https://api.github.com/users/chaitanyagarware/gists%7B/gist_id%7D
- https://api.github.com/users/chaitanyagarware/repos
- https://avatars.githubusercontent.com/u/97582002?v=4
- https://api.github.com/users/chaitanyagarware/events%7B/privacy%7D