CVE-2025-47781 (GCVE-0-2025-47781)
Vulnerability from cvelistv5
Published
2025-05-14 15:52
Modified
2025-05-14 17:37
Severity ?
VLAI Severity ?
EPSS score ?
CWE
- CWE-331 - Insufficient Entropy
Summary
Rallly is an open-source scheduling and collaboration tool. Versions up to and including 3.22.1 of the application features token based authentication. When a user attempts to login to the application, they insert their email and a 6 digit code is sent to their email address to complete the authentication. A token that consists of 6 digits only presents weak entropy however and when coupled with no token brute force protection, makes it possible for an unauthenticated attacker with knowledge of a valid email address to successfully brute force the token within 15 minutes (token expiration time) and take over the account associated with the targeted email address. All users on the Rallly applications are impacted. As long as an attacker knows the user's email address they used to register on the app, they can systematically take over any user account. For the authentication mechanism to be safe, the token would need to be assigned a complex high entropy value that cannot be bruteforced within reasonable time, and ideally rate limiting the /api/auth/callback/email endpoint to further make brute force attempts unreasonable within the 15 minutes time. As of time of publication, no patched versions are available.
References
▼ | URL | Tags | |
---|---|---|---|
security-advisories@github.com | https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv | Exploit, Vendor Advisory | |
134c704f-9b21-4f2e-91b3-4a467353bcc0 | https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv | Exploit, Vendor Advisory |
{ "containers": { "adp": [ { "metrics": [ { "other": { "content": { "id": "CVE-2025-47781", "options": [ { "Exploitation": "poc" }, { "Automatable": "yes" }, { "Technical Impact": "total" } ], "role": "CISA Coordinator", "timestamp": "2025-05-14T17:37:06.796122Z", "version": "2.0.3" }, "type": "ssvc" } } ], "providerMetadata": { "dateUpdated": "2025-05-14T17:37:43.435Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "references": [ { "tags": [ "exploit" ], "url": "https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv" } ], "title": "CISA ADP Vulnrichment" } ], "cna": { "affected": [ { "product": "rallly", "vendor": "lukevella", "versions": [ { "status": "affected", "version": "\u003c= 3.11.2" } ] } ], "descriptions": [ { "lang": "en", "value": "Rallly is an open-source scheduling and collaboration tool. Versions up to and including 3.22.1 of the application features token based authentication. When a user attempts to login to the application, they insert their email and a 6 digit code is sent to their email address to complete the authentication. A token that consists of 6 digits only presents weak entropy however and when coupled with no token brute force protection, makes it possible for an unauthenticated attacker with knowledge of a valid email address to successfully brute force the token within 15 minutes (token expiration time) and take over the account associated with the targeted email address. All users on the Rallly applications are impacted. As long as an attacker knows the user\u0027s email address they used to register on the app, they can systematically take over any user account. For the authentication mechanism to be safe, the token would need to be assigned a complex high entropy value that cannot be bruteforced within reasonable time, and ideally rate limiting the /api/auth/callback/email endpoint to further make brute force attempts unreasonable within the 15 minutes time. As of time of publication, no patched versions are available." } ], "metrics": [ { "cvssV3_1": { "attackComplexity": "LOW", "attackVector": "NETWORK", "availabilityImpact": "HIGH", "baseScore": 9.8, "baseSeverity": "CRITICAL", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "privilegesRequired": "NONE", "scope": "UNCHANGED", "userInteraction": "NONE", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "version": "3.1" } } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-331", "description": "CWE-331: Insufficient Entropy", "lang": "en", "type": "CWE" } ] } ], "providerMetadata": { "dateUpdated": "2025-05-14T15:52:13.559Z", "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa", "shortName": "GitHub_M" }, "references": [ { "name": "https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv", "tags": [ "x_refsource_CONFIRM" ], "url": "https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv" } ], "source": { "advisory": "GHSA-gm8g-3r3j-48hv", "discovery": "UNKNOWN" }, "title": "Rallly Insufficient Password Login Token Entropy Leads to Account Takeover" } }, "cveMetadata": { "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa", "assignerShortName": "GitHub_M", "cveId": "CVE-2025-47781", "datePublished": "2025-05-14T15:52:13.559Z", "dateReserved": "2025-05-09T19:49:35.620Z", "dateUpdated": "2025-05-14T17:37:43.435Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "vulnerability-lookup:meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2025-47781\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2025-05-14T16:15:29.257\",\"lastModified\":\"2025-07-11T16:11:50.470\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Rallly is an open-source scheduling and collaboration tool. Versions up to and including 3.22.1 of the application features token based authentication. When a user attempts to login to the application, they insert their email and a 6 digit code is sent to their email address to complete the authentication. A token that consists of 6 digits only presents weak entropy however and when coupled with no token brute force protection, makes it possible for an unauthenticated attacker with knowledge of a valid email address to successfully brute force the token within 15 minutes (token expiration time) and take over the account associated with the targeted email address. All users on the Rallly applications are impacted. As long as an attacker knows the user\u0027s email address they used to register on the app, they can systematically take over any user account. For the authentication mechanism to be safe, the token would need to be assigned a complex high entropy value that cannot be bruteforced within reasonable time, and ideally rate limiting the /api/auth/callback/email endpoint to further make brute force attempts unreasonable within the 15 minutes time. As of time of publication, no patched versions are available.\"},{\"lang\":\"es\",\"value\":\"Rallly es una herramienta de c\u00f3digo abierto para la programaci\u00f3n y la colaboraci\u00f3n. Las versiones de la aplicaci\u00f3n, hasta la 3.22.1 (incluida), incorporan autenticaci\u00f3n mediante token. Cuando un usuario intenta iniciar sesi\u00f3n, introduce su correo electr\u00f3nico y se le env\u00eda un c\u00f3digo de 6 d\u00edgitos para completar la autenticaci\u00f3n. Sin embargo, un token de 6 d\u00edgitos presenta una entrop\u00eda d\u00e9bil y, al no contar con protecci\u00f3n contra ataques de fuerza bruta, permite que un atacante no autenticado, con conocimiento de una direcci\u00f3n de correo electr\u00f3nico v\u00e1lida, ataque el token por fuerza bruta en 15 minutos (fecha de caducidad) y se apodere de la cuenta asociada a dicha direcci\u00f3n. Todos los usuarios de las aplicaciones de Rallly se ven afectados. Si un atacante conoce la direcci\u00f3n de correo electr\u00f3nico del usuario que se registr\u00f3 en la aplicaci\u00f3n, puede apropiarse sistem\u00e1ticamente de cualquier cuenta. Para que el mecanismo de autenticaci\u00f3n sea seguro, se debe asignar al token un valor complejo de alta entrop\u00eda que no pueda ser atacado por fuerza bruta en un tiempo razonable. Idealmente, se debe limitar la velocidad del endpoint /api/auth/callback/email para que los intentos de fuerza bruta sean a\u00fan m\u00e1s irrazonables dentro de los 15 minutos. Al momento de la publicaci\u00f3n, no hay versiones parcheadas disponibles.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-331\"}]},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-331\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:rallly:rally:*:*:*:*:*:*:*:*\",\"versionEndIncluding\":\"3.11.2\",\"matchCriteriaId\":\"1C5DEAEB-EBC8-43EF-B5A1-A517D4D0C0C1\"}]}]}],\"references\":[{\"url\":\"https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Exploit\",\"Vendor Advisory\"]},{\"url\":\"https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv\",\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"tags\":[\"Exploit\",\"Vendor Advisory\"]}]}}", "vulnrichment": { "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2025-47781\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-05-14T17:37:06.796122Z\"}}}], \"references\": [{\"url\": \"https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-05-14T17:36:59.757Z\"}}], \"cna\": {\"title\": \"Rallly Insufficient Password Login Token Entropy Leads to Account Takeover\", \"source\": {\"advisory\": \"GHSA-gm8g-3r3j-48hv\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 9.8, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"lukevella\", \"product\": \"rallly\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c= 3.11.2\"}]}], \"references\": [{\"url\": \"https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv\", \"name\": \"https://github.com/lukevella/rallly/security/advisories/GHSA-gm8g-3r3j-48hv\", \"tags\": [\"x_refsource_CONFIRM\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"Rallly is an open-source scheduling and collaboration tool. Versions up to and including 3.22.1 of the application features token based authentication. When a user attempts to login to the application, they insert their email and a 6 digit code is sent to their email address to complete the authentication. A token that consists of 6 digits only presents weak entropy however and when coupled with no token brute force protection, makes it possible for an unauthenticated attacker with knowledge of a valid email address to successfully brute force the token within 15 minutes (token expiration time) and take over the account associated with the targeted email address. All users on the Rallly applications are impacted. As long as an attacker knows the user\u0027s email address they used to register on the app, they can systematically take over any user account. For the authentication mechanism to be safe, the token would need to be assigned a complex high entropy value that cannot be bruteforced within reasonable time, and ideally rate limiting the /api/auth/callback/email endpoint to further make brute force attempts unreasonable within the 15 minutes time. As of time of publication, no patched versions are available.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-331\", \"description\": \"CWE-331: Insufficient Entropy\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2025-05-14T15:52:13.559Z\"}}}", "cveMetadata": "{\"cveId\": \"CVE-2025-47781\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-05-14T17:37:43.435Z\", \"dateReserved\": \"2025-05-09T19:49:35.620Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2025-05-14T15:52:13.559Z\", \"assignerShortName\": \"GitHub_M\"}", "dataType": "CVE_RECORD", "dataVersion": "5.1" } } }
Loading…
Loading…
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…