
सुरक्षा-अनुसंधान प्रयोगशाला: GHSA-3g6g-gq4r-xjm9 / CVE-2026-35580 (GitHub Actions workflow_dispatch इनपुट शेल इंजेक्शन) का NationalSecurityAgency/emissary के पिन किए गए स्नैपशॉट के विरुद्ध नियंत्रित पुनरुत्पादन
स्वचालित शोध कलाकृति — अपस्ट्रीम प्रोजेक्ट नहीं।
यह रिपॉजिटरी Université Laval में मास्टर की थीसिस के लिए एक स्वचालित हार्नेस द्वारा निर्मित एक डिस्पोजेबल लैब है, जो प्रकाशित GitHub Actions वर्कफ़्लो कमजोरियों को पुन: प्रस्तुत करने पर केंद्रित है। यह
NationalSecurityAgency/emissaryका एक शब्दशः स्नैपशॉट है, जो कमिट898488b489615581ea66d17954742c8e4ffb0323(2026-01-09) पर है, और उस प्रोजेक्ट के अपने लाइसेंस के तहत पुनर्वितरित किया गया है, जिसकी फ़ाइल इस स्नैपशॉट में अपरिवर्तित शामिल है।अपस्ट्रीम प्रोजेक्ट शामिल नहीं है, उसे कभी लक्षित नहीं किया जाता है, और यहाँ अध्ययन की गई कमजोरी पहले से ही सार्वजनिक है। इस रिपॉजिटरी में हर सीक्रेट और वेरिएबल एक यादृच्छिक रूप से उत्पन्न डमी मान है — कोई वास्तविक क्रेडेंशियल मौजूद नहीं है। एक्शन संदर्भ और रनर इमेज उसी पर पिन किए गए हैं जो 2026-01-09 पर उन्होंने हल किया था; स्नैपशॉट में किए गए हर बदलाव के लिए हार्नेस आउटपुट में
pinning.mdदेखें।प्रश्न या आपत्तियाँ: [email protected]

Emissary एक P2P-आधारित डेटा-संचालित वर्कफ़्लो इंजन है जो एक विषम, संभवतः व्यापक रूप से फैले हुए, बहु-स्तरीय P2P नेटवर्क में कंप्यूट संसाधनों पर चलता है। वर्कफ़्लो यात्राएँ पारंपरिक वर्कफ़्लो इंजनों की तरह पूर्व-नियोजित नहीं होती हैं, बल्कि डेटा के बारे में अधिक जानकारी खोजे जाने पर खोजी जाती हैं। Emissary वर्कफ़्लो में आमतौर पर कोई उपयोगकर्ता सहभागिता नहीं होती है, बल्कि डेटा को लक्ष्य-उन्मुख तरीके से तब तक संसाधित किया जाता है जब तक वह पूर्णता की स्थिति तक नहीं पहुँच जाता।
Emissary अत्यधिक कॉन्फ़िगर करने योग्य है, लेकिन इस आधार कार्यान्वयन में लगभग कुछ भी नहीं करता है। इस फ्रेमवर्क के उपयोगकर्ताओं से अपेक्षा की जाती है कि वे emissary.place.ServiceProviderPlace का विस्तार करने वाली कक्षाएँ प्रदान करें ताकि emissary.core.IBaseDataObject पेलोड पर कार्य किया जा सके।
विभिन्न प्रकार की चीज़ें की जा सकती हैं और वर्कफ़्लो को चरणों में प्रबंधित किया जाता है, जैसे STUDY, ID, COORDINATE, TRANSFORM, ANALYZE, IO, REVIEW।
वर्कफ़्लो को निर्देशित करने के लिए जिम्मेदार कक्षाएँ हैं emissary.core.MobileAgent और उससे व्युत्पन्न कक्षाएँ, जो संबंधित पेलोड ऑब्जेक्ट्स के एक सेट के पथ को वर्कफ़्लो के माध्यम से प्रबंधित करती हैं, और emissary.directory.DirectoryPlace जो उपलब्ध सेवाओं, उनकी लागत और गुणवत्ता का प्रबंधन करता है और P2P नेटवर्क को जुड़ा रखता है।
आवश्यक घटकों को स्थापित करने, स्रोत कोड खींचने, Emissary को बनाने और चलाने की जानकारी के लिए DEVELOPING.md गाइड पढ़ें।
Emissary को संकलित, परीक्षण और पैकेज करने के लिए mvn clean package चलाएँ
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.132 s
[INFO] Finished at: 2022-01-10T22:31:05Z
[INFO] ------------------------------------------------------------------------
Emissary में एक bash स्क्रिप्ट है जो सब कुछ चलाती है। यह Emissary की शीर्ष-स्तरीय निर्देशिका में है। स्क्रिप्ट emissary.Emissary क्लास चलाती है जिसमें विभिन्न कार्यों को संभालने के लिए कई Picocli कमांड उपलब्ध हैं।
यदि emissary स्क्रिप्ट बिना किसी तर्क के चलाई जाती है, तो आपको सभी कॉन्फ़िगरेशन उप-कमांडों की सूची और एक संक्षिप्त विवरण मिलेगा।
./emissary
./emissary help चलाने से आपको वही आउटपुट मिलेगा जो बिना तर्कों के चलाने पर मिलता है। यदि आप किसी कमांड के बारे में अधिक विस्तृत जानकारी देखना चाहते हैं, तो help के बाद कमांड का नाम जोड़ें। उदाहरण के लिए, server कमांड के लिए विवरण सहित सभी तर्क देखने के लिए, चलाएँ:
./emissary help server
बाकी कमांडों में सभी के पास (-b या --projectBase) तर्क होते हैं जिन्हें सेट किया जा सकता है, लेकिन यह PROJECT_BASE से मेल खाना चाहिए।
कॉन्फ़िग निर्देशिका डिफ़ॉल्ट रूप से /config पर सेट होती है लेकिन इसे (-c या --config) के साथ भी पास किया जा सकता है। git चेकआउट से चलाते समय, आपको projectBase के रूप में target का उपयोग करना चाहिए। शुरू करने से पहले target/config में कॉन्फ़िग फ़ाइलों को संशोधित करने के लिए स्वतंत्र महसूस करें।
लॉगिंग logback द्वारा संभाली जाती है। आप --logbackConfig तर्क के साथ एक कस्टम फ़ाइल की ओर इशारा कर सकते हैं।
अधिक जानकारी के लिए प्रत्येक कमांड के लिए help -c देखें।
यह कमांड एक Emissary सर्वर शुरू करेगा और सभी स्थानों, एक पिकअप स्थान, और ड्रॉप ऑफ फ़िल्टर को प्रारंभ करेगा जो कॉन्फ़िगर किए गए हैं। यदि -m या --mode निर्दिष्ट नहीं है तो यह स्टैंडअलोन मोड में शुरू होगा। डिफ़ॉल्ट रूप से, MobileAgents की संख्या मशीन के विनिर्देशों के आधार पर गणना की जाती है। आधुनिक कंप्यूटरों पर, यह अधिक हो सकती है। आप -a या --agents के साथ एजेंटों की संख्या को नियंत्रित कर सकते हैं। यहाँ एक उदाहरण चलाना है।
./emissary server -a 2
आगे के कॉन्फ़िगरेशन के बिना, यह http://localhost:8001 पर शुरू होगा। यदि आप उस url पर ब्राउज़ करते हैं, तो आपको target/config/jetty-users.properties में परिभाषित उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा, जो emissary और emissary123 है।