Timing Attack Vulnerability in gradio-app/gradio
A timing attack vulnerability exists in the gradio-app/gradio repository, specifically within the login function in routes.py. The vulnerability arises from the use of a direct comparison operation (`app.auth[username] == password`) to validate user credentials, which can be exploited to guess passwords based on response times. Successful exploitation of this vulnerability could allow an attacker to bypass authentication mechanisms and gain unauthorized access.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2024-1729
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 00:53 UTC · Revision 1
Source evidence
Timing Attack Vulnerability in gradio-app/gradio
core-osv · Original sourcePublished 29 Mar 2024, 04:35 UTC
A timing attack vulnerability exists in the gradio-app/gradio repository, specifically within the login function in routes.py. The vulnerability arises from the use of a direct comparison operation (`app.auth[username] == password`) to validate user credentials, which can be exploited to guess passwords based on response times. Successful exploitation of this vulnerability could allow an attacker to bypass authentication mechanisms and gain unauthorized access.
osv:CVE-2024-1729
Complete source record
{
"id": "5835d26f7f88c773bf05121800bd726a9dceeeae084d703cdd507d6d7fbc4c3c",
"url": "https://osv.dev/vulnerability/CVE-2024-1729",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Timing Attack Vulnerability in gradio-app/gradio",
"summary": "A timing attack vulnerability exists in the gradio-app/gradio repository, specifically within the login function in routes.py. The vulnerability arises from the use of a direct comparison operation (`app.auth[username] == password`) to validate user credentials, which can be exploited to guess passwords based on response times. Successful exploitation of this vulnerability could allow an attacker to bypass authentication mechanisms and gain unauthorized access.",
"evidence": "osv:CVE-2024-1729",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2024-1729",
"aliases": [
"CVE-2024-1729",
"GHSA-hmx6-r76c-85g9",
"PYSEC-2026-1416"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/gradio-app/gradio",
"type": "GIT",
"events": [
{
"introduced": "bb4126cc243bb3d198b16b85bef867ede830ecaf"
},
{
"fixed": "bacbc70fa1936a5ca2bfd85ab493a4912004b10e"
},
{
"fixed": "e329f1fd38935213fe0e73962e8cbd5d3af6e87b"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:*",
"range": [
{
"introduced": "4.18.0"
},
{
"fixed": "4.19.2"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "e329f1fd38935213fe0e73962e8cbd5d3af6e87b"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"website@0.23.2",
"gradio_test@0.3.6",
"gradio@4.19.0",
"@gradio/video@0.6.1",
"@gradio/utils@0.3.0",
"@gradio/uploadbutton@0.4.6",
"@gradio/upload@0.7.3",
"@gradio/tootils@0.2.1",
"@gradio/textbox@0.4.10",
"@gradio/tabs@0.2.3",
"@gradio/tabitem@0.2.3",
"@gradio/statustracker@0.4.6",
"@gradio/slider@0.2.9",
"@gradio/simpletextbox@0.1.9",
"@gradio/simpleimage@0.3.1",
"@gradio/simpledropdown@0.1.9",
"@gradio/radio@0.4.3",
"@gradio/plot@0.3.1",
"@gradio/paramviewer@0.4.2",
"@gradio/number@0.3.9",
"@gradio/model3d@0.8.0",
"@gradio/markdown@0.6.3",
"@gradio/label@0.2.9",
"@gradio/json@0.1.9",
"@gradio/imageeditor@0.4.1",
"@gradio/image@0.9.1",
"@gradio/html@0.1.9",
"@gradio/highlightedtext@0.4.9",
"@gradio/gallery@0.7.1",
"@gradio/form@0.1.9",
"@gradio/fileexplorer@0.3.21",
"@gradio/file@0.5.1",
"@gradio/fallback@0.2.9",
"@gradio/dropdown@0.6.0",
"@gradio/dataset@0.1.21",
"@gradio/dataframe@0.6.2",
"@gradio/colorpicker@0.2.9",
"@gradio/code@0.5.1",
"@gradio/client@0.12.1",
"@gradio/checkboxgroup@0.4.3",
"@gradio/checkbox@0.2.9",
"@gradio/chatbot@0.7.1",
"@gradio/button@0.2.21",
"@gradio/box@0.1.9",
"@gradio/audio@0.9.1",
"@gradio/atoms@0.5.2",
"@gradio/app@1.25.0",
"@gradio/annotatedimage@0.5.1",
"@gradio/accordion@0.3.2",
"website@0.23.1",
"gradio_client@0.10.0",
"gradio@4.18.0",
"@gradio/video@0.6.0",
"@gradio/uploadbutton@0.4.5",
"@gradio/upload@0.7.2",
"@gradio/tootils@0.2.0",
"@gradio/simpleimage@0.3.0",
"@gradio/model3d@0.7.0",
"@gradio/imageeditor@0.4.0",
"@gradio/image@0.9.0",
"@gradio/gallery@0.7.0",
"@gradio/fileexplorer@0.3.20",
"@gradio/file@0.5.0",
"@gradio/dataset@0.1.20",
"@gradio/dataframe@0.6.1",
"@gradio/code@0.5.0",
"@gradio/client@0.12.0",
"@gradio/chatbot@0.7.0",
"@gradio/button@0.2.20",
"@gradio/audio@0.9.0",
"@gradio/app@1.24.0",
"@gradio/annotatedimage@0.5.0",
"@gradio/accordion@0.3.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-1729.json"
}
}
],
"modified": "2026-10-28T02:30:25.001184702Z",
"provider": "osv",
"references": [
"https://huntr.com/bounties/f6a10a8d-f538-4cb7-9bb2-85d9f5708124",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/1xxx/CVE-2024-1729.json",
"https://nvd.nist.gov/vuln/detail/CVE-2024-1729",
"https://github.com/gradio-app/gradio/commit/e329f1fd38935213fe0e73962e8cbd5d3af6e87b"
],
"provider_metadata": {
"cwe_ids": [
"CWE-367"
],
"cna_assigner": "@huntr_ai",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/1xxx/CVE-2024-1729.json"
}
},
"related_cves": [
{
"value": "CVE-2024-1729",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 491343,
"published_at": "2024-03-29T04:35:12.067+00:00"
}