A CVE card: the score as a ring dial in the severity colour, the title, the package and the vulnerable and fixed versions.
These are real renders from the API with the example values in the table below. Switch the size above: the same template lays itself out for all 6 sizes — send size or sizes with the request.
For security vendors, open-source maintainers and package registries announcing an advisory. The dial fills to the score clamped to 0–10 and prints the value as sent; without a severity the CVSS bands of the score pick one. The affected range is struck through in red and the fix shown in green. Wide frames put the dial on the right; square and vertical frames put it on top.
Every field is optional. Long text shrinks to fit instead of overflowing; an image field takes a public URL that we fetch on our side.
| Field | Type | Description | Example |
|---|---|---|---|
title |
text | What the vulnerability lets an attacker do. default: Security advisory | Path traversal in archive extraction lets a crafted tarball write outside the target directory |
advisory_id |
text | CVE or GHSA identifier, e.g. CVE-2026-41872. | CVE-2026-41872 |
severity |
text | low, medium, high or critical; sets the dial colour. one of: low | medium | high | critical | critical |
score |
text | CVSS score from 0 to 10, e.g. 9.8. | 9.8 |
package |
text | Ecosystem and package, e.g. npm · tar-stream-lite. | npm · tar-stream-lite |
affected |
text | Vulnerable versions, e.g. < 4.2.1. | < 4.2.1 |
fixed_in |
text | First fixed version, e.g. 4.2.1. | 4.2.1 |
date |
text | Publication date. | Oct 24, 2026 |
site |
text | Advisory page or security site. | northwind.dev/security |
accent |
colour | Brand colour as hex, e.g. #6366f1. Drives buttons, highlights and the background glow. default: #22d3ee | #22d3ee |
theme |
dark | light | Colour scheme: dark or light. | — |
Use the slug as template. The response holds the URL of the finished PNG; ?wait=true keeps the connection open until it is ready.
curl -X POST "https://shareglint.com/v1/images?wait=true" \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"template": "security-advisory",
"modifications": {
"title": "Path traversal in archive extraction lets a crafted tarball write outside the target directory",
"advisory_id": "CVE-2026-41872",
"severity": "critical",
"score": "9.8",
"package": "npm · tar-stream-lite",
"affected": "< 4.2.1",
"fixed_in": "4.2.1",
"date": "Oct 24, 2026",
"site": "northwind.dev/security"
}
}'
For static sites, Webflow, Shopify and no-code tools: put the fields in the query string and sign it with your signing secret. The first request renders the image, every later one is a redirect to the cached file. How to compute the signature.
<meta property="og:image" content="https://shareglint.com/i/acc_YOUR_ACCOUNT_ID/security-advisory.png?advisory_id=CVE-2026-41872&affected=%3C%204.2.1&date=Oct%2024%2C%202026&fixed_in=4.2.1&package=npm%20%C2%B7%20tar-stream-lite&score=9.8&severity=critical&site=northwind.dev%2Fsecurity&title=Path%20traversal%20in%20archive%20extraction%20lets%20a%20crafted%20tarball%20write%20outside%20the%20target%20directory&s=YOUR_SIGNATURE">
accent and theme change per request. For anything more, copy the template into your account: you get an ordinary HTML template with the same fields that you can edit in the dashboard or through the API. If the slug is free on your account, the copy takes it — your integrations switch to your version without changing a line.
curl -X POST "https://shareglint.com/v1/templates/library/security-advisory/copy" \
-H "Authorization: Bearer sk_live_YOUR_KEY"