
# सुरक्षा-अनुसंधान प्रयोगशाला: CVE-2025-61584 (GHSA-9g7x-737f-5xpc) का पुनरुत्पादन — pull_request_target वर्कफ़्लो (.github/workflows/pr.yml) में github.head_ref के माध्यम से कमांड इंजेक्शन
स्वचालित शोध कलाकृति — मूल अपस्ट्रीम प्रोजेक्ट नहीं।
यह रिपॉजिटरी एक स्वचालित हार्नेस द्वारा निर्मित एक डिस्पोजेबल लैब है, जो Université Laval में मास्टर की थीसिस के लिए प्रकाशित GitHub Actions वर्कफ़्लो कमजोरियों को पुन: प्रस्तुत करने हेतु बनाई गई है। यह
serverless-dns/serverless-dnsका एक शब्दशः स्नैपशॉट है, जो कमिटb0b1a1538aeb1991b5bc13dfe4e18e686913b12e(2025-04-26) पर आधारित है, और उस प्रोजेक्ट के अपने लाइसेंस के तहत पुनर्वितरित किया गया है, जिसकी फ़ाइल इस स्नैपशॉट में अपरिवर्तित शामिल है।अपस्ट्रीम प्रोजेक्ट शामिल नहीं है, उसे कभी लक्षित नहीं किया जाता, और यहाँ अध्ययन की गई कमजोरी पहले से ही सार्वजनिक है। इस रिपॉजिटरी में हर सीक्रेट और वेरिएबल एक यादृच्छिक रूप से उत्पन्न डमी मान है — कोई वास्तविक क्रेडेंशियल मौजूद नहीं है। एक्शन संदर्भ और रनर इमेज उसी पर पिन किए गए हैं जो 2025-04-26 को उन्होंने हल किया था; स्नैपशॉट में किए गए हर बदलाव के लिए हार्नेस आउटपुट में
pinning.mdदेखें।प्रश्न या आपत्तियाँ: [email protected]
serverless-dns एक Pi-Hole जैसा सामग्री-अवरोधक, सर्वरलेस, स्टब DNS-over-HTTPS (DoH) और DNS-over-TLS (DoT) रिज़ॉल्वर है। यह Cloudflare Workers, Deno Deploy, Fastly Compute@Edge, और Fly.io पर आउट-ऑफ-द-बॉक्स चलता है। इन सभी सेवाओं के मुफ़्त टियर प्रति माह 10 से 20 डिवाइसों के DNS ट्रैफ़िक को कवर करने के लिए पर्याप्त होने चाहिए।
RethinkDNS इन एंडपॉइंट्स पर प्रोडक्शन में serverless-dns चलाता है:
| क्लाउड प्लेटफ़ॉर्म | सर्वर स्थान | प्रोटोकॉल | डोमेन | उपयोग |
|---|---|---|---|---|
| ⛅ Cloudflare Workers | 280+ (पिंग) | DoH | sky.rethinkdns.com | कॉन्फ़िगर करें |
| 🦕 Deno Deploy | 30+ (पिंग) | DoH | निजी बीटा | |
| ⏱️ Fastly Compute@Edge | 80+ (पिंग) | DoH | निजी बीटा | |
| 🪂 Fly.io | 30+ (पिंग) | DoH और DoT | max.rethinkdns.com | कॉन्फ़िगर करें |
सर्वर-साइड प्रोसेसिंग में 0 मिलीसेकंड (ms) से 2ms (माध्यिका) लगता है, और एंड-टू-एंड विलंबता (क्षेत्रों और नेटवर्कों के अनुसार भिन्न) 10ms से 30ms (माध्यिका) के बीच है।
Fly.io पर Rethink DNS रिज़ॉल्वर FOSS United द्वारा प्रायोजित है।
Cloudflare Workers serverless-dns सेटअप करने के लिए सबसे आसान प्लेटफ़ॉर्म है:
चरण-दर-चरण निर्देशों के लिए, देखें:
| प्लेटफ़ॉर्म | कठिनाई | रनटाइम | दस्तावेज़ |
|---|---|---|---|
| ⛅ Cloudflare | आसान | v8 Isolates | Cloudflare Workers पर होस्टिंग |
| 🦕 Deno.com | मध्यम | Deno Isolates | Deno.com पर होस्टिंग |
| ⏱️ Fastly Compute@Edge | आसान | Fastly JS | Fastly Compute@Edge पर होस्टिंग |
| 🪂 Fly.io | कठिन | Node MicroVM | Fly.io पर होस्टिंग |
ब्लॉकलिस्ट सेटअप करने के लिए, अपने ब्राउज़र से https://<my-domain>.tld/configure पर जाएँ (यह RethinkDNS' configure पेज के समान कुछ लोड करना चाहिए)।
सहायता या सहायता के लिए, बेझिझक एक मुद्दा खोलें या एक पैच सबमिट करें।
कोड:
# navigate to work dir
cd /my/work/dir
# clone this repository
git clone https://github.com/serverless-dns/serverless-dns.git
# navigate to serverless-dns
cd ./serverless-dns
Node:
# install node v22+ via nvm, if required
# https://github.com/nvm-sh/nvm#installing-and-updating
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install --lts
# download dependencies
npm i
# (optional) update dependencies
npm update
# run serverless-dns on node
./run n
# run a clinicjs.org profiler
./run n [cpu|fn|mem]
Deno:
# install deno.land v2+
# https://github.com/denoland/deno/#install
curl -fsSL https://deno.land/install.sh | sh
# run serverless-dns on deno
./run d
Fastly:
# install node v22+ via nvm, if required
# install the Fastly CLI
# https://developer.fastly.com/learning/tools/cli
# run serverless-dns on Fastly Compute@Edge
./run f
Wrangler:
# install Cloudflare Workers (cli) aka Wrangler
# https://developers.cloudflare.com/workers/cli-wrangler/install-update
npm i wrangler --save-dev
# run serverless-dns on Cloudflare Workers (cli)
# Make sure to setup Wrangler first:
# https://developers.cloudflare.com/workers/cli-wrangler/authentication
./run w
# profile wrangler with Chrome DevTools
# blog.cloudflare.com/profiling-your-workers-with-wrangler
इस रिपॉजिटरी पर कमिट Google JavaScript शैली गाइड को लागू करते हैं (ref: .eslintrc.cjs)।
एक git pre-commit हुक जो .js फ़ाइलों पर लिंटर (eslint) और फ़ॉर्मेटर (prettier) चलाता है। इस हुक को बायपास करने के लिए git commit --no-verify का उपयोग करें।
पुल रिक्वेस्ट की भी कोड शैली उल्लंघनों के लिए जाँच की जाती है और जहाँ संभव हो स्वचालित रूप से ठीक की जाती है।
यदि आपको डिफ़ॉल्ट ट्वीक करने की आवश्यकता हो तो env.js कॉन्फ़िगर करें।
Cloudflare Workers के लिए, इसके बजाय wrangler.toml में एनवी वेरिएबल्स सेटअप करें।
Fastly Compute@Edge के लिए, इसके बजाय fastly.toml में एनवी वेरिएबल्स सेटअप करें।