{"metadata": {"vulnerability": "cve-2026-20779", "count": 15, "kinds": {"milestone": 4, "sighting": 3, "kev": 0, "other": 8}}, "data": [{"timestamp": "2026-03-03T03:26:00.104Z", "date_only": false, "value": "2026-03-03T03:26:00.104Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-07-03T20:19:29.239Z", "date_only": false, "value": "2026-07-03T20:19:29.239Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-07-03T20:19:29.239Z", "date_only": false, "value": "2026-07-03T20:19:29.239Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / Gitea", "record": "cve-2026-20779", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-07-03T21:16:56Z", "date_only": false, "value": "2026-07-03T21:16:56Z", "kind": "other", "label": "Nvd published at", "source": "github \u00b7 GHSA-GX3V-Q759-G323", "record": "GHSA-GX3V-Q759-G323", "field": "database_specific.nvd_published_at"}, {"timestamp": "2026-07-03T21:16:56.543Z", "date_only": false, "value": "2026-07-03T21:16:56.543", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-20779", "record": "FKIE_CVE-2026-20779", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-07-04T14:00:38.005Z", "date_only": false, "value": "2026-07-04T14:00:38.005110Z", "kind": "sighting", "label": "Seen", "source": "https://bsky.app/profile/hugovalters.bsky.social/post/3mpt7vnjjtz2p", "record": "CVE-2026-20779", "field": "creation_timestamp", "uuid": "c62202e7-607e-44e3-9cd6-c250d0641aff", "content": "CVE-2026-20779 - Supply chain attack risk in Gitea. TOTP reuse flaw bypasses 2FA. CVSS 7.1. Update to 1.26.3 or later immediately. #CVE #Gitea #infosec\n\nhttps://www.valtersit.com/cve/CVE-2026-20779/", "url": "https://bsky.app/profile/hugovalters.bsky.social/post/3mpt7vnjjtz2p"}, {"timestamp": "2026-07-06T19:02:05.918Z", "date_only": false, "value": "2026-07-06T19:02:05.918693Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "cve-2026-20779", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-07-06T19:02:05.918Z", "date_only": false, "value": "2026-07-06T19:02:05.918693Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-20779", "record": "FKIE_CVE-2026-20779", "field": "metrics.ssvcV203.0.ssvcData.timestamp"}, {"timestamp": "2026-07-07T17:00:54.312Z", "date_only": false, "value": "2026-07-07T17:00:54.312Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-07-07T17:00:54.312Z", "date_only": false, "value": "2026-07-07T17:00:54.312Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "cve-2026-20779", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-07-21T21:57:24Z", "date_only": false, "value": "2026-07-21T21:57:24Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-GX3V-Q759-G323", "record": "GHSA-GX3V-Q759-G323", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-07-21T21:57:24Z", "date_only": false, "value": "2026-07-21T21:57:24Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-GX3V-Q759-G323", "record": "GHSA-GX3V-Q759-G323", "field": "modified"}, {"timestamp": "2026-07-21T22:35:02.868Z", "date_only": false, "value": "2026-07-21T22:35:02.868621Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "record": "CVE-2026-20779", "field": "creation_timestamp", "uuid": "3d38954f-42ab-40ac-a4cd-bec4a4b48702", "url": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}, {"timestamp": "2026-07-22T10:31:09.924Z", "date_only": false, "value": "2026-07-22T10:31:09.924407Z", "kind": "sighting", "label": "Seen", "source": "https://gist.github.com/alon710/858227db9dfcc3f8ab3390f0832100c1", "record": "CVE-2026-20779", "field": "creation_timestamp", "uuid": "1717ff20-7e5a-49d4-bfc6-45e1b6d0c799", "content": "# CVE-2026-20779: CVE-2026-20779: TOTP Single-Use Enforcement Defect in Gitea\n\n&gt; **CVSS Score:** 7.1\n&gt; **Published:** 2026-07-21\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-20779\n\n## Summary\nGitea versions from 1.5.0 before 1.26.3 contain a security vulnerability in their multi-factor authentication (MFA) logic. This vulnerability allows valid TOTP codes to be accepted multiple times across web authentication flows and the Basic Auth X-Gitea-OTP header path. Due to a TOCTOU race condition and a lack of state tracking in programmatic auth pathways, attackers with valid credentials can replay single-use OTP codes.\n\n## TL;DR\nA high-severity authentication bypass in Gitea allows attackers to replay TOTP codes across web and API paths due to database race conditions and missing state tracking.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CWE ID**: CWE-294 (Bypass of Authentication Mechanism Using Replay)\n- **Attack Vector**: Network (AV:N)\n- **CVSS v3.1 Score**: 7.1 (High)\n- **EPSS Score**: 0.00481 (Percentile: 38.44%)\n- **Exploit Status**: Proof of Concept (PoC) available\n- **CISA KEV Status**: Not Listed\n- **Affected Versions**: v1.5.0 to &lt; v1.26.3\n\n## Affected Systems\n\n- Gitea Open Source Git Server\n\n## Mitigation\n\n- Upgrade Gitea to version 1.26.3 or higher immediately.\n- Restrict or disable password-based basic authentication over HTTP/HTTPS in favor of SSH keys.\n- Implement rate-limiting on authentication endpoints (/user/two_factor and API endpoints) at the reverse proxy layer.\n\n**Remediation Steps:**\n1. Step 1: Identify all running Gitea instances and verify their versions.\n2. Step 2: Back up the Gitea database and configuration files (app.ini).\n3. Step 3: Deploy the updated Gitea binary or container image (v1.26.3 or later).\n4. Step 4: Verify the TOTP single-use policy by attempting a replay of a used OTP on the user/two_factor interface.\n\n## References\n\n- [Gitea v1.26.3 Release Tag](https://github.com/go-gitea/gitea/releases/tag/v1.26.3)\n- [Gitea v1.26.3 and v1.26.4 Security Release Blog](https://blog.gitea.com/release-of-1.26.3-and-1.26.4/)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-20779) - Automated Vulnerability Intelligence*", "url": "https://gist.github.com/alon710/858227db9dfcc3f8ab3390f0832100c1"}, {"timestamp": "2026-10-25T15:10:00.147Z", "date_only": false, "value": "2026-10-25T15:10:00.147", "kind": "other", "label": "Updated", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-20779", "record": "FKIE_CVE-2026-20779", "field": "lastModified"}], "metrics": {"as_of": "2026-10-29T06:07:27.588Z", "anchors": {"origin": {"timestamp": "2026-07-03T20:19:29.239Z", "date_only": false, "value": "2026-07-03T20:19:29.239Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-07-03T20:19:29.239Z", "date_only": false, "value": "2026-07-03T20:19:29.239Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "exploit_publication": {"timestamp": "2026-07-21T22:35:02.868Z", "date_only": false, "value": "2026-07-21T22:35:02.868621Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "record": "CVE-2026-20779", "field": "creation_timestamp", "uuid": "3d38954f-42ab-40ac-a4cd-bec4a4b48702", "url": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}, "exploitation": null, "patch": null}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": true, "seconds": 1563333.629, "hours": 434.25934138888886, "days": 18.094139224537038, "min_seconds": 1563333.629, "max_seconds": 1563333.629, "approximate": false, "ongoing": false, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-07-03T20:19:29.239Z", "date_only": false, "value": "2026-07-03T20:19:29.239Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-07-21T22:35:02.868Z", "date_only": false, "value": "2026-07-21T22:35:02.868621Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "record": "CVE-2026-20779", "field": "creation_timestamp", "uuid": "3d38954f-42ab-40ac-a4cd-bec4a4b48702", "url": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}}, "time_to_patch": {"available": false, "missing": ["start", "end"]}, "total_time_to_patch": {"available": false, "missing": ["start", "end"]}, "disclosure_to_patch": {"available": false, "missing": ["end"]}, "time_unpatched": {"available": true, "seconds": 10144078.349378, "hours": 2817.7995414938887, "days": 117.40831422891203, "min_seconds": 10144078.349378, "max_seconds": 10144078.349378, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-07-03T20:19:29.239Z", "date_only": false, "value": "2026-07-03T20:19:29.239Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "cve-2026-20779", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-10-29T06:07:27.588Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": true, "seconds": 8580744.720378, "hours": 2383.540200105, "days": 99.314175004375, "min_seconds": 8580744.720378, "max_seconds": 8580744.720378, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-07-21T22:35:02.868Z", "date_only": false, "value": "2026-07-21T22:35:02.868621Z", "kind": "sighting", "label": "Published proof of concept", "source": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "record": "CVE-2026-20779", "field": "creation_timestamp", "uuid": "3d38954f-42ab-40ac-a4cd-bec4a4b48702", "url": "https://github.com/go-gitea/gitea/security/advisories/GHSA-gx3v-q759-g323", "metric_role": "exploit_publication", "metric_basis": "sighting_report"}, "end": {"timestamp": "2026-10-29T06:07:27.588Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}}}
