CVE-2021-21283
Flarum is an open source discussion platform for websites. The "Flarum Sticky" extension versions 0.1.0-beta.14 and 0.1.0-beta.15 has a cross-site scripting vulnerability. A change in release beta 14 of the Sticky extension caused the plain text content of the first post of a pinned discussion to be injected as HTML on the discussion list. The issue was discovered following an internal audit. Any HTML would be injected through the m.trust() helper. This resulted in an HTML injection where <script> tags would not be executed.
Leer descripción completaMostrar menos
However it was possible to run javascript from other HTML attributes, enabling a cross-site scripting (XSS) attack to be performed. Since the exploit only happens with the first post of a pinned discussion, an attacker would need the ability to pin their own discussion, or be able to edit a discussion that was previously pinned. On forums where all pinned posts are authored by your staff, you can be relatively certain the vulnerability has not been exploited. Forums where some user-created discussions were pinned can look at the first post edit date to find whether the vulnerability might have been exploited. Because Flarum doesn't store the post content history, you cannot be certain if a malicious edit was reverted. The fix will be available in version v0.1.0-beta.16 with Flarum beta 16. The fix has already been back-ported to Flarum beta 15 as version v0.1.0-beta.15.1 of the Sticky extension. Forum administrators can disable the Sticky extension until they are able to apply the update. The vulnerability cannot be exploited while the extension is disabled.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Puntuación base: 5.4
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.79%
- Percentil entre todas las CVEs puntuadas: 55
- Fecha de la puntuación: 5/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
CWE
- CWE-79
Referencias
- https://discuss.flarum.org/d/26042-security-update-to-flarum-sticky-010-beta151%29
- https://github.com/flarum/sticky/commit/7ebd30462bd405c4c0570b93a6d48710e6c3db19
- https://github.com/flarum/sticky/pull/24
- https://github.com/flarum/sticky/security/advisories/GHSA-h3gg-7wx2-cq3h
- https://discuss.flarum.org/d/26042-security-update-to-flarum-sticky-010-beta151%29
- https://github.com/flarum/sticky/commit/7ebd30462bd405c4c0570b93a6d48710e6c3db19
- https://github.com/flarum/sticky/pull/24
- https://github.com/flarum/sticky/security/advisories/GHSA-h3gg-7wx2-cq3h
JSON original (NVD)
Mostrar
{
"id": "CVE-2021-21283",
"cveTags": [],
"metrics": {
"cvssMetricV2": [
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"version": "2.0",
"baseScore": 3.5,
"accessVector": "NETWORK",
"vectorString": "AV:N/AC:M/Au:S/C:N/I:P/A:N",
"authentication": "SINGLE",
"integrityImpact": "PARTIAL",
"accessComplexity": "MEDIUM",
"availabilityImpact": "NONE",
"confidentialityImpact": "NONE"
},
"acInsufInfo": false,
"impactScore": 2.9,
"baseSeverity": "LOW",
"obtainAllPrivilege": false,
"exploitabilityScore": 6.8,
"obtainUserPrivilege": false,
"obtainOtherPrivilege": false,
"userInteractionRequired": true
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 5.4,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N",
"integrityImpact": "LOW",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "LOW"
},
"impactScore": 2.7,
"exploitabilityScore": 2.3
},
{
"type": "Primary",
"source": "nvd@nist.gov",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 5.4,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N",
"integrityImpact": "LOW",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "LOW"
},
"impactScore": 2.7,
"exploitabilityScore": 2.3
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "flarum",
"product": "sticky",
"versions": [
{
"status": "affected",
"version": ">=v0.1.0-beta.14 <=v0.1.0-beta.15"
}
]
}
]
}
],
"published": "2021-01-26T21:15:12.767",
"references": [
{
"url": "https://discuss.flarum.org/d/26042-security-update-to-flarum-sticky-010-beta151%29",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/flarum/sticky/commit/7ebd30462bd405c4c0570b93a6d48710e6c3db19",
"tags": [
"Patch",
"Third Party Advisory"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/flarum/sticky/pull/24",
"tags": [
"Patch",
"Third Party Advisory"
],
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/flarum/sticky/security/advisories/GHSA-h3gg-7wx2-cq3h",
"tags": [
"Third Party Advisory"
],
"source": "security-advisories@github.com"
},
{
"url": "https://discuss.flarum.org/d/26042-security-update-to-flarum-sticky-010-beta151%29",
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://github.com/flarum/sticky/commit/7ebd30462bd405c4c0570b93a6d48710e6c3db19",
"tags": [
"Patch",
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://github.com/flarum/sticky/pull/24",
"tags": [
"Patch",
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
},
{
"url": "https://github.com/flarum/sticky/security/advisories/GHSA-h3gg-7wx2-cq3h",
"tags": [
"Third Party Advisory"
],
"source": "af854a3a-2127-422b-91ae-364da2661108"
}
],
"vulnStatus": "Modified",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-79"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Flarum is an open source discussion platform for websites. The \"Flarum Sticky\" extension versions 0.1.0-beta.14 and 0.1.0-beta.15 has a cross-site scripting vulnerability. A change in release beta 14 of the Sticky extension caused the plain text content of the first post of a pinned discussion to be injected as HTML on the discussion list. The issue was discovered following an internal audit. Any HTML would be injected through the m.trust() helper. This resulted in an HTML injection where <script> tags would not be executed. However it was possible to run javascript from other HTML attributes, enabling a cross-site scripting (XSS) attack to be performed. Since the exploit only happens with the first post of a pinned discussion, an attacker would need the ability to pin their own discussion, or be able to edit a discussion that was previously pinned. On forums where all pinned posts are authored by your staff, you can be relatively certain the vulnerability has not been exploited. Forums where some user-created discussions were pinned can look at the first post edit date to find whether the vulnerability might have been exploited. Because Flarum doesn't store the post content history, you cannot be certain if a malicious edit was reverted. The fix will be available in version v0.1.0-beta.16 with Flarum beta 16. The fix has already been back-ported to Flarum beta 15 as version v0.1.0-beta.15.1 of the Sticky extension. Forum administrators can disable the Sticky extension until they are able to apply the update. The vulnerability cannot be exploited while the extension is disabled."
},
{
"lang": "es",
"value": "Flarum es una plataforma de discusión de código abierto para sitios web. Las versiones 0.1.0-beta.14 y 0.1.0-beta.15 de la extensión \"Flarum Sticky\" tienen una vulnerabilidad de tipo cross-site scripting. Un cambio en la versión beta 14 de la extensión Sticky causó que el contenido de texto plano de la primera publicación de una discusión fijada se inyectara como HTML en la lista de discusión. El problema se detectó tras una auditoría interna. Cualquier HTML se inyectaría por medio del asistente m.trust(). Esto resultó en una inyección de HTML donde las etiquetas (script) no se ejecutarían. Sin embargo, era posible ejecutar javascript desde otros atributos HTML, lo que permitía realizar un ataque de tipo cross-site scripting (XSS). Dado que la explotación solo ocurre con la primera publicación de una discusión fijada, un atacante necesitaría la capacidad de fijar su propia discusión o poder editar una discusión que haya sido fijada previamente. En los foros donde todas las publicaciones fijadas son creadas por su personal, puede estar relativamente seguro de que la vulnerabilidad no ha sido explotada. Los foros en los que se fijaron algunas discusiones creadas por usuarios pueden consultar la fecha de edición de la primera publicación para averiguar si la vulnerabilidad podría haberse explotado. Debido a que Flarum no almacena el historial de contenido de la publicación, no puede estar seguro de si se revertió una edición maliciosa. La corrección estará disponible en la versión v0.1.0-beta.16 con Flarum beta 16. La corrección ya se ha actualizado a Flarum beta 15 como la versión v0.1.0-beta.15.1 de la extensión Sticky. Los administradores del foro pueden deshabilitar la extensión Sticky hasta que puedan aplicar la actualización. La vulnerabilidad no puede ser explotada mientras la extensión esté desactivada"
}
],
"lastModified": "2026-06-17T03:35:11.463",
"configurations": [
{
"nodes": [
{
"negate": false,
"cpeMatch": [
{
"criteria": "cpe:2.3:a:flarum:sticky:0.1.0:beta14:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "39236B26-127F-4C5C-A5D5-9E1730245739"
},
{
"criteria": "cpe:2.3:a:flarum:sticky:0.1.0:beta15:*:*:*:*:*:*",
"vulnerable": true,
"matchCriteriaId": "9D6DFA2A-DE79-40DF-8276-AA4F19D511B4"
}
],
"operator": "OR"
}
]
}
],
"sourceIdentifier": "security-advisories@github.com"
}