Shields.io is a service for concise, consistent, and legible badges in SVG and raster format. Shields.io and users self-hosting their own instance of shields using version < server-2024-09-25
are vulnerable to a remote execution vulnerability via the JSONPath library used by the Dynamic JSON/Toml/Yaml badges. This vulnerability would allow any user with access to make a request to a URL on the instance to the ability to execute code by crafting a malicious JSONPath expression. All users who self-host an instance are vulnerable. This problem was fixed in server-2024-09-25. Those who follow the tagged releases should update to server-2024-09-25
or later. Those who follow the rolling tag on DockerHub, docker pull shieldsio/shields:next
to update to the latest version. As a workaround, blocking access to the endpoints /badge/dynamic/json
, /badge/dynamic/toml
, and /badge/dynamic/yaml
(e.g: via a firewall or reverse proxy in front of your instance) would prevent the exploitable endpoints from being accessed.
The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.