Skip to content
Heist/ feed
Back to feed
Medium

Timing Attack Vulnerability in gradio-app/gradio

Type: advisorySources: OSV

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 source

Published 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"
}