Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
gitea-artifact-v4-readall — Gitea Actions artifact v4 DoS के लिए Proof-of-concept और lab: parseProtobufBody में unbounded io.ReadAll एक job token को oversized CreateArtifact bodies POST करने देता है। | Kitploit
उपकरण/GitHubGitHub/abraxas/gitea-artifact-v4-readall
भेद्यता विश्लेषणशोषणसुरक्षा वर्चुअलाइजेशनवेब सुरक्षालैब और अभ्यास
GitHubabraxas/gitea-artifact-v4-readall

gitea-artifact-v4-readall

Gitea Actions artifact v4 DoS के लिए Proof-of-concept और lab: parseProtobufBody में unbounded io.ReadAll एक job token को oversized CreateArtifact bodies POST करने देता है।

रिपॉजिटरी देखें
115 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Abraxas Labs - gitea-artifact-v4-readall

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-artifact-v4-readall

gitea-artifact-v4-readall

Gitea 1.27.3 - Gitea

job_summary.go पहले से ही MaxJobSummarySize (1 MiB) पर io.LimitReader के साथ सीमित है। artifact v4 में parseProtobufBody बिना किसी सीमा के io.ReadAll(ctx.Req.Body) करता है। CreateArtifact, Finalize, List, Get, Delete सभी इसी से गुज़रते हैं। एक रैंडम यूज़र PAT पर्याप्त नहीं है। आपको एक चल रहा Actions job token चाहिए। Fork-PR jobs अभी भी 1.27.3 पर NeedApproval करते हैं।

Job-summary ने LimitReader सीख लिया। Artifact v4 ने इसे कॉपी नहीं किया। एक लाइव job 12 MiB का CreateArtifact POST कर सकता है और Gitea पूरा बफ़र कर लेता है।

IDअभी तक कोई CVE नहीं
CWECWE-400
CVSSMedium: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
ProductGitea
Affectedv1.27.3 (146cc3e) तक, Actions सक्षम होने पर
Authचल रहा Actions job token
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

हमलावर क्या कर सकता है

एक चल रहे Actions job से (उनका अपना repo, या एक fork-PR जो पहले ही NeedApproval पास कर चुका है), मनमाने आकार का v4 CreateArtifact body POST करें और Gitea को इसे पूरी तरह बफ़र करने के लिए मजबूर करें। उसी instance पर job-summary पहले से ही 1 MiB से अधिक कुछ भी अस्वीकार करता है।

यह Gitea प्रक्रिया पर memory pressure है। Lab ने अनुपस्थित सीमा साबित की (12 MiB -> 200)। इसने प्रक्रिया को नहीं मारा। यह RCE नहीं है। यह unauthenticated नहीं है। एक चुराया गया user PAT बिना लाइव job के इस पथ तक नहीं पहुँचता।

मैंने इसे कैसे खोजा

GHSA लहर के बाद बचा हुआ map में Actions body handling शामिल था। Fork-PR jobs अभी भी 1.27.3 पर NeedApproval करते हैं, इसलिए यह unauth fork-PR skip नहीं है। मैंने देखा कि Actions API request bodies को कैसे पढ़ता है। Job-summary में एक संख्या है। Artifact v4 में नहीं है।

मैंने gitea/act_runner:0.2.13 खड़ा किया, एक hold workflow seed किया ताकि एक job token मौजूद हो, और 12 MiB का CreateArtifact POST किया। HTTP 200 ok साथ में signedUploadUrl। फिर 8 MiB job-summary: 400 invalid summary। GET /api/v1/version अभी भी 200। Gitea चालू रहा। Lab mem_limit 1g है। Body 12 MiB पर सीमित ताकि host प्रयोग न हो। केवल host executor। कोई docker.sock नहीं।

पहले से दर्ज गलत मोड़: job token के बिना CreateArtifact (401 बग नहीं है); process kill / OOM (SUCCESS 12 MiB -> 200 है जबकि 8 MiB summary -> 400); signedUploadUrl को RCE मानना; fork-PR unauth; एक reverse shell। नाटक।

Lab

cd lab
./run.sh

लक्ष्य केवल http://127.0.0.1:18135। In-compose ROOT_URL http://gitea:3000/ है ताकि runner register कर सके।

v4-create status=200 sent=12582912
v4-unbounded-readall=1
job-summary status=400 sent=8388608 invalid summary cap=MaxJobSummarySize=1048576
gitea-still-up status=200
SUCCESS GITEA-ARTIFACT-V4-READALL

समाधान

parseProtobufBody को proto-आकार की सीमा पर io.LimitReader में लपेटें, MaxJobSummarySize के समान पैटर्न। 12 MiB CreateArtifact को उसी श्रेणी के तरीके से विफल होना चाहिए जैसे 8 MiB job-summary पहले से होता है।

संदर्भ

  • github.com/go-gitea/gitea tag v1.27.3
  • artifactsv4.go · job_summary.go · MaxJobSummarySize
  • CWE-400

लाइसेंस

GNU Affero GPL v3.0। देखें LICENSE। केवल loopback lab। कोई वारंटी नहीं।

टूल डाउनलोड करें