CVE-2026-43977
Full vulnerability record from the local CVENow database.
Description
wger is a free, open-source workout and fitness manager. In versions prior to 2.6, any authenticated user can read another user's private workout session notes, exercise history, and training statistics by calling the /logs/ and /stats/ actions on a routine they do not own. The vulnerability exists in RoutineViewSet (wger/manager/api/views.py). The view defines two custom actions /logs/ and /stats/ that are intended to return data for the requesting user's own training history within a routine. However, the underlying permission check (RoutinePermission.has_object_permission) grants read access to any authenticated user when the routine has is_template=True, regardless of ownership. When the /logs/ or /stats/ actions are invoked against a routine the attacker does not own, they return the owner's private workout history, not the attacker's. This issue has been fixed in version 2.6.
View original CVE JSON
{
"id": "CVE-2026-43977",
"sourceIdentifier": "[email protected]",
"published": "2026-07-16T23:16:16.167",
"lastModified": "2026-10-24T20:10:00.137",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "wger is a free, open-source workout and fitness manager. In versions prior to 2.6, any authenticated user can read another user's private workout session notes, exercise history, and training statistics by calling the /logs/ and /stats/ actions on a routine they do not own. The vulnerability exists in RoutineViewSet (wger/manager/api/views.py). The view defines two custom actions /logs/ and /stats/ that are intended to return data for the requesting user's own training history within a routine. However, the underlying permission check (RoutinePermission.has_object_permission) grants read access to any authenticated user when the routine has is_template=True, regardless of ownership. When the /logs/ or /stats/ actions are invoked against a routine the attacker does not own, they return the owner's private workout history, not the attacker's. This issue has been fixed in version 2.6."
},
{
"lang": "es",
"value": "wger es un gestor de entrenamientos y fitness gratuito y de código abierto. En versiones anteriores a la 2.6, cualquier usuario autenticado puede leer las notas privadas de la sesión de entrenamiento de otro usuario, el historial de ejercicios y las estadísticas de entrenamiento llamando a las acciones /logs/ y /stats/ en una rutina que no les pertenece. La vulnerabilidad existe en RoutineViewSet (wger/manager/api/views.py). La vista define dos acciones personalizadas /logs/ y /stats/ que están destinadas a devolver datos para el historial de entrenamiento del propio usuario solicitante dentro de una rutina. Sin embargo, la comprobación de permisos subyacente (RoutinePermission.has_object_permission) otorga acceso de lectura a cualquier usuario autenticado cuando la rutina tiene is_template=True, independientemente de la propiedad. Cuando se invocan las acciones /logs/ o /stats/ contra una rutina que el atacante no posee, devuelven el historial de entrenamiento privado del propietario, no el del atacante. Este problema se ha solucionado en la versión 2.6."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "wger-project",
"product": "wger",
"versions": [
{
"version": "< 2.6",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"baseScore": 7.5,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 3.9,
"impactScore": 3.6
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-17T13:14:26.159335Z",
"id": "CVE-2026-43977",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-639"
},
{
"lang": "en",
"value": "CWE-863"
}
]
}
],
"references": [
{
"url": "https://github.com/wger-project/wger/security/advisories/GHSA-cj9g-27ph-4cgv",
"source": "[email protected]"
},
{
"url": "https://github.com/wger-project/wger/security/advisories/GHSA-cj9g-27ph-4cgv",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}