GitHub Actions హ్యాండ్లర్‌లోని ఒక దుర్బలత్వం Nixpkgsలోని ప్యాకేజీలను రాజీ పడేలా చేసింది.

NixOS పంపిణీ మరియు Nix ప్యాకేజీ మేనేజర్ పర్యావరణ వ్యవస్థలో ఉపయోగించే Nixpkgs ప్యాకేజీ రిపోజిటరీకి పుల్ అభ్యర్థనలను సమర్పించేటప్పుడు స్వయంచాలకంగా ప్రారంభించబడే GitHub చర్యల హ్యాండ్లర్‌లలోని దుర్బలత్వాలు బహిర్గతం చేయబడ్డాయి. దుర్బలత్వం అనధికార వినియోగదారుడు Nixpkgsలో హోస్ట్ చేయబడిన అన్ని ప్యాకేజీల సోర్స్ కోడ్‌కు చదవడానికి మరియు వ్రాయడానికి యాక్సెస్‌ను మంజూరు చేసే టోకెన్‌ను సంగ్రహించడానికి అనుమతించింది. ఈ టోకెన్ సమీక్ష మరియు ఆమోద ప్రక్రియలను దాటవేస్తూ ప్రాజెక్ట్ యొక్క Git రిపోజిటరీ ద్వారా ఏదైనా ప్యాకేజీని నేరుగా సవరించడానికి అనుమతించింది.

Nixpkgsని రాజీ పడే మరియు ఏదైనా ప్యాకేజీలోకి కస్టమ్ కోడ్‌ను ఇంజెక్ట్ చేసే సామర్థ్యాన్ని భద్రతా పరిశోధకులు గత అక్టోబర్‌లో NixCon సమావేశంలో ప్రదర్శించారు మరియు వెంటనే ప్రాజెక్ట్ యొక్క మౌలిక సదుపాయాలలో ప్యాచ్ చేయబడ్డారు. అయితే, దాడి వివరాలు ఒక సంవత్సరం తర్వాత మాత్రమే వెల్లడయ్యాయి. ఈ సమస్య Nixpkgs GitHub రిపోజిటరీలో GitHub Actions హ్యాండ్లర్ల వినియోగానికి సంబంధించినది, ఇవి "pull_request_target" ఈవెంట్‌కు కట్టుబడి ఉంటాయి మరియు కొత్త పుల్ అభ్యర్థనలపై ఆటోమేటెడ్ తనిఖీలను నిర్వహిస్తాయి.

"pull_request" ఈవెంట్ లా కాకుండా, "pull_request_target" లోని హ్యాండ్లర్లకు బిల్డ్ ఎన్విరాన్‌మెంట్‌కు చదవడానికి/వ్రాయడానికి యాక్సెస్ మంజూరు చేయబడుతుంది, దీనికి పుల్ రిక్వెస్ట్‌లో పాస్ చేయబడిన డేటాతో పనిచేసేటప్పుడు ప్రత్యేక శ్రద్ధ అవసరం. "pull_request_target"కి కట్టుబడి ఉన్న హ్యాండ్లర్‌లలో ఒకరు పుల్ రిక్వెస్ట్‌లో అందించిన "OWNERS" ఫైల్‌ను codeowners-validator యుటిలిటీని నిర్మించడం మరియు కాల్ చేయడం ద్వారా ధృవీకరించారు: steps: — uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf with: ref: refs/pull/$/merge path: pr — run: nix-build base/ci -A codeownersValidator — run: result/bin/codeowners-validator env: OWNERS_FILE: pr/ci/OWNERS

సమస్య ఏమిటంటే, OWNERS ఫైల్ తప్పుగా ఫార్మాట్ చేయబడితే, codeowners-validator యుటిలిటీ తప్పుగా రూపొందించబడిన స్ట్రింగ్ యొక్క కంటెంట్‌లను ప్రామాణిక, పబ్లిక్‌గా యాక్సెస్ చేయగల లాగ్‌కు అవుట్‌పుట్ చేస్తుంది. ఈ దాడిలో OWNERS అనే సింబాలిక్ లింక్‌ను పుల్ రిక్వెస్ట్‌లో ఉంచడం, బిల్డ్ ఎన్విరాన్‌మెంట్‌లో క్రెడెన్షియల్స్ నిల్వ చేసే ".credentials" ఫైల్‌ను సూచించడం జరిగింది. తత్ఫలితంగా, ఈ ఫైల్‌ను ప్రాసెస్ చేయడం వలన లోపం ఏర్పడింది మరియు రిపోజిటరీ యాక్సెస్ టోకెన్ ఉన్న మొదటి లైన్ పబ్లిక్ లాగ్‌కు అవుట్‌పుట్ చేయబడింది.

 GitHub Actions హ్యాండ్లర్‌లోని ఒక దుర్బలత్వం Nixpkgsలోని ప్యాకేజీలను రాజీ పడేలా చేసింది.

అదనంగా, editorconfig నియమాలను తనిఖీ చేసే హ్యాండ్లర్‌లో మరొక దుర్బలత్వం కనుగొనబడింది. దశలు: — పేరు: PR నుండి మార్చబడిన ఫైళ్ల జాబితాను పొందండి run: gh api […] | jq [… ] > «$HOME/changed_files» — ఉపయోగాలు: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 with: ref: refs/pull/$/merge — name: Checking EditorConfig run: cat «$HOME/changed_files» | xargs -r editorconfig-checker

ఈ సందర్భంలో, సమస్య ఏమిటంటే, పుల్ రిక్వెస్ట్‌లోని ప్రతి ఫైల్‌తో editorconfig-checkerను అమలు చేయడానికి "xargs" యుటిలిటీని ఉపయోగించడం. ఫైల్ పేర్లు ధృవీకరించబడనందున, దాడి చేసేవాడు పుల్ రిక్వెస్ట్‌లో ప్రత్యేక అక్షరాలను కలిగి ఉన్న ఫైల్‌ను చేర్చవచ్చు, ఇది editorconfig-checkerను అమలు చేస్తున్నప్పుడు కమాండ్-లైన్ ఆర్గ్యుమెంట్‌లుగా ప్రాసెస్ చేయబడుతుంది. ఉదాహరణకు, "--help" ఫైల్‌ను సృష్టించేటప్పుడు, editorconfig-checker అందుబాటులో ఉన్న ఎంపికల గురించి సూచనను ప్రదర్శిస్తుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి