☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Gitea logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H 🐛 CWE-400
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-62925

CVE-2026-62925 Denial of Service in Gitea
📅 PUBLISHED: 2026-10-14 00:00 UTC 🔄 UPDATED: 2026-10-15 11:48 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🥷 MITRE: T1499
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: Unknown (no confirmed affected version range published; all releases with Alpine package registry support are potentially affected)
CVSS VECTOR BREAKDOWN 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-62925 is a resource-consumption (denial-of-service) vulnerability in Gitea's Alpine package registry. The server parses uploaded Alpine package archives and generates metadata before it enforces package-size quotas, and it does not bound the size of the decompressed .PKGINFO data or the number of dependency and provides entries it contains. An authenticated user holding package-publish permission can upload a small, highly compressed archive that expands into disproportionately large in-memory structures during parsing and metadata generation. The result is excessive memory allocation that, on memory-constrained deployments, can terminate the Gitea process or otherwise degrade availability.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The defect is a classic uncontrolled resource consumption condition (CWE-400) with a decompression-amplification component, mapped to the Alpine package-handling path of Gitea's built-in package registry. Per the NVD description, the vulnerable processing sequence is:

  1. Gitea parses Alpine package uploads — meaning it decompresses and reads archive contents — before enforcing package-size quotas. The quota check, wherever it sits in the pipeline, occurs too late to constrain the work already performed.
  2. The decompressed .PKGINFO data is not bounded. .PKGINFO is the metadata file present in Alpine (apk) packages; its size after decompression is not capped by the parser.
  3. Neither the dependency count nor the provides count recorded in that metadata is bounded. These are list-like fields; an attacker can supply a very large number of entries, each of which is processed, stored, and used during metadata generation.
  4. On the basis of the parse result, Gitea performs metadata generation, which multiplies the memory cost per input byte.

The combination is an amplification primitive: a compact, highly compressible payload is expanded server-side into data structures far larger than the uploaded artifact. Because the quota is applied after parsing, the size of the upload is not a meaningful control here; a small artifact can drive a large allocation. The attack requires authentication plus package-publish permission — the operative CVSS privileges-required value is Low (PR:L) — but requires no user interaction (UI:N) and is network-reachable (AV:N), with complexity Low (AC:L).

The sole affected security property is Availability (C:N/I:N/A:H). There is no confidentiality or integrity impact described: the flaw does not exfiltrate data or modify repositories, it consumes memory. Successful abuse either pushes the process into an out-of-memory condition (terminating it) or forces the host into memory pressure severe enough to disrupt other workloads on the same node.

No specific function names, code paths, or parameter identifiers are provided in the available source data, and none are asserted here. The mechanism should be understood at the level of the processing pipeline described above: decompression and metadata parse → unbounded .PKGINFO handling → later quota enforcement.

Exploitation Scenarios

No public proof-of-concept, exploit code, or Nuclei template is available for this CVE, and no exploitation has been observed in the wild. The attack chain below is inferred strictly from the vulnerability class and the described processing order.

  1. Reconnaissance / target identification. The attacker identifies a Gitea instance with the package registry enabled and Alpine package support in use, and determines that it is reachable over the network. Because the flaw is triggered through the normal package-upload workflow, the attacker does not need repository write access to source code — only an account with package-publish rights on the instance. Instances that allow self-registration or that federate package publishing to a broad set of users are the most exposed.

  2. Precondition and targeting of the flaw class. The attacker authenticates and obtains a valid session with permission to publish packages. They then prepare an Alpine package archive engineered for decompression amplification: a minimal or near-empty payload that decompresses into a .PKGINFO body containing an extremely large number of dependency and provides entries, so that the archive on the wire stays small while the parsed representation is far larger.

  3. Triggering the vulnerability. The attacker uploads the crafted package to the Alpine package endpoint through Gitea's normal publish flow. Gitea decompresses and parses the archive and constructs metadata from the unbounded .PKGINFO content. Because size quotas are enforced only after this parsing stage, the disproportionate memory allocation occurs before any limit is applied. Repeated uploads, or concurrent uploads from multiple accounts, compound the effect.

  4. Post-exploitation impact. On a memory-constrained deployment, the growing allocation can exhaust available memory, causing the Gitea process to be terminated by the operating system's OOM killer or to fail under allocation pressure. The outcome is loss of availability of the Git service and dependent package-registry functions. No data disclosure, tampering, or privilege escalation follows from this flaw; the effect is an availability outage whose duration is governed by how quickly the service is restarted or memory is reclaimed.

Because the required permission is a legitimate publishing permission, the activity will appear in logs as ordinary package uploads unless the request size, decompression ratio, or metadata volume is specifically measured.

Impact Assessment

The CVSS v3.1 base score is 6.5 (Medium), vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. Reading the subscores:

  • AV:N — the package-upload interface is reachable over the network; the attacker does not need local or adjacent access.
  • AC:L — no unusual conditions are required; the flaw is exercised by a normal upload of a specially shaped artifact.
  • PR:L — authentication and package-publish permission are required, which meaningfully narrows the attacker pool to registered users, contributors, CI service accounts, or any other identity granted publishing rights.
  • UI:N — no victim action is needed once the payload is submitted.
  • S:U — impact is confined to the Gitea scope.
  • C:N / I:N / A:H — complete loss of availability is the credible outcome on memory-constrained hosts; confidentiality and integrity are unaffected.

Blast radius is determined by deployment topology. A single-container or small-VM Gitea instance with a constrained memory limit can be taken down by one authenticated publisher. Where the package registry is co-hosted with other services, memory exhaustion can degrade or evict neighboring processes. The most significant secondary effect is a self-inflicted denial of service against the software supply chain: taking the Git server offline interrupts cloning, CI checkout, and release/artifact retrieval for every downstream consumer of that instance, even though no artifact is modified.

Detection Guidance

Sigma Rule

title: Suspicious Gitea Alpine Package Upload with High Decompression Amplification
id: 8f2c1d94-4a7b-4e3c-9c21-7b5e9a0d6f31
status: experimental
description: Detects Alpine package uploads to Gitea that exhibit extreme upload-to-parsed-size amplification consistent with CVE-2026-62925 resource exhaustion attempts.
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-62925
author: valtersit.com Threat Intelligence
date: 2026-01-01
logsource:
  product: gitea
  service: http
detection:
  selection_path:
    cs-uri-stem|contains:
      - '/api/packages/'
      - '/api/packages/'
  selection_alpine:
    cs-uri-stem|contains: '/alpine'
  selection_method:
    cs-method: 'PUT'
  selection_size:
    sc-bytes|gte: 8192
  condition: selection_path and selection_alpine and selection_method
level: medium
tags:
  - attack.t1499
  - cve.2026.62925
falsepositives:
  - Legitimate Alpine package publishing with large, but bounded, metadata files

YARA Rule

rule CVE_2026_62925_Alpine_PKGINFO_Amplification
{
    meta:
        description = "Detects Alpine .apk archives containing .PKGINFO metadata with anomalously high dependency or provides entry counts (CVE-2026-62925)"
        author = "valtersit.com Threat Intelligence"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-62925"
        date = "2026-01-01"
        severity = "medium"

    strings:
        $pkginfo = ".PKGINFO"
        $dep = "depend = "
        $prov = "provides = "
        $pkname = "pkgname = "
        $apk_sig = { 1F 8B 08 }

    condition:
        $pkginfo and $akp_sig_missing_guard
}

Note: YARA cannot natively decompress gzip streams. Detection is intended for archival stores or for tooling that pre-decompresses .apk contents; match on .PKGINFO presence combined with an elevated count of depend = and provides = occurrences. Practically, deploy this against extracted package contents rather than the compressed artifact.

Suricata IDS Rule

alert http any any -> any any (msg:"CVE-2026-62925 Possible Gitea Alpine Package Metadata Amplification Upload"; flow:established,to_server; http.method; content:"PUT"; http.uri; content:"/alpine"; nocase; http.uri; content:"/api/packages"; nocase; dsize:>8192; threshold: type both, track by_src, count 5, seconds 60; classtype:attempted-dos; reference:cve,2026-62925; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-62925; sid:202662925; rev:1;)

Elastic Detection

sequence by user.name with maxspan=2m
  [ network where http.request.method == "PUT" and
      stringContains(http.request.uri, "/api/packages") and
      stringContains(http.request.uri, "/alpine") ]
  [ network where http.request.method == "PUT" and
      stringContains(http.request.uri, "/api/packages") and
      stringContains(http.request.uri, "/alpine") ]
  [ network where http.request.method == "PUT" and
      stringContains(http.request.uri, "/api/packages") and
      stringContains(http.request.uri, "/alpine") ]

Repeated Alpine package publish requests from the same authenticated identity inside a short window are an indicator of attempted resource exhaustion; correlate with host-level memory pressure alerts.

Splunk SPL Query

index=web sourcetype=gitea:http
  (uri_path="*api/packages*" AND uri_path="*alpine*" AND http_method="PUT")
| stats count AS uploads,
        sum(http_content_length) AS total_uploaded_bytes,
        dc(clientip) AS distinct_clients
        BY user, clientip, uri_path
| where uploads >= 3
| sort - uploads

Pair with a second search correlating Gitea process restarts or OOM events on the host to raise confidence above simple volumetric noise:

(index=os sourcetype=linux_secure "Out of memory" OR "oom-kill" OR "Killed process")
  OR (index=gitea "level=error" "out of memory")
| stats count BY host

Wazuh OSSEC Rule

<group name="gitea,web,application,">
  <rule id="100925" level="10">
    <decoded_as>json</decoded_as>
    <field name="uri_path">/api/packages/</field>
    <field name="method">PUT</field>
    <field name="uri_path">alpine</field>
    <description>CVE-2026-62925: Possible Gitea Alpine package upload abuse - package-size quota bypass / memory exhaustion attempt</description>
    <mitre>
      <id>T1499</id>
    </mitre>
    <group>cve_2026_62925,availability_impact,</group>
  </rule>

  <rule id="100926" level="12" frequency="5" timeframe="300">
    <if_matched_sid>100925</if_matched_sid>
    <same_source_ip />
    <description>CVE-2026-62925: Repeated Gitea Alpine package publish attempts from same source - probable denial-of-service attempt</description>
    <mitre>
      <id>T1499</id>
    </mitre>
    <group>cve_2026_62925,availability_impact,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence is 0/4 — UNPATCHED. No patch evidence was returned from any tracked source, no vendor fix or advisory is available, and no workaround was published. Everything below is compensating control guidance, not remediation of the root cause.

1. Immediate mitigations

  • Constrain memory and enforce restart policy. Run Gitea in a container or cgroup with an explicit memory limit and a restart policy so an OOM termination is bounded in time rather than taking down the host. This does not prevent the trigger but caps the blast radius.
  • Restrict package-publish permission. Since the attack requires Low privileges (PR:L) and specifically the package-publish right, audit who holds that permission. Disable self-registration, remove publishing rights from accounts that do not need them, and prefer scoped, per-package permissions over instance-wide grants. Every account stripped of publish rights removes an attacker from the prerequisite set.
  • Front the instance with a request-size and rate limit. A reverse proxy enforcing a small maximum upload body size for the Alpine package endpoints, plus per-identity request rate limiting, increases the cost of a sustained campaign even though it cannot stop a single amplifying artifact.
  • Monitor and alert on upload volume. Repeated Alpine package uploads from one identity in a short window are anomalous in most environments; alert on them (see Detection Guidance) and be prepared to revoke the account.

2. Patch / upgrade steps

  • No fixed version exists as of this report. Monitor the Gitea project's release notes, security advisories, and repository commits for a change that moves size-quota enforcement ahead of decompression and parse, or that bounds .PKGINFO decompressed size and its dependency/provides entry counts.
  • When a release addressing this flaw appears, upgrade promptly, then verify the fix has landed by confirming that quotas are validated prior to archive parsing.
  • Because CVE-2026-62925 is not in CISA KEV and has no recorded in-the-wild exploitation, there is no emergency prioritization driver beyond the exposure created by granting publish rights to untrusted identities.

3. Long-term hardening

  • Treat the package registry as an untrusted-input surface on par with public code upload. Ensure any decompression or metadata-parse routine in your supply-chain tooling is preceded by size validation, not followed by it.
  • Apply defense-in-depth resource governance to all artifact-handling components: memory ceilings, CPU quotas, request timeouts, and rate limits, so that no single upload path can exhaust a shared host.
  • Minimize the population of identities granted artifact-publishing rights and review those grants on a schedule; least privilege on the publish path directly reduces the attack surface of this class of flaw.
  • Track Gitea security releases and subscribe to the project's advisory feed, since the responsible fix here is a code change that no configuration can replicate.

References

  1. NVD — CVE-2026-62925: https://nvd.nist.gov/vuln/detail/CVE-2026-62925
  2. MITRE ATT&CK — T1499, Endpoint Denial of Service: https://attack.mitre.org/techniques/T1499/
  3. MITRE CWE — CWE-400, Uncontrolled Resource Consumption: https://cwe.mitre.org/data/definitions/400.html
  4. FIRST — EPSS (CVE not yet scored; check for updates): https://www.first.org/epss/
  5. CISA Known Exploited Vulnerabilities Catalog (CVE-2026-62925 is not listed): https://www.cisa.gov/known-exploited-vulnerabilities-catalog

No public proof-of-concept, exploit code, Nuclei template, or threat-actor campaign has been identified for this vulnerability. No exploitation in the wild has been reported. All detection content in this report is derived from the described vulnerability class and the package-upload workflow and has not been validated against a live exploit sample.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:"Gitea"
title:"Gitea"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-62925/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.