- शिप
- 19 अगस्त 2026 को 2:18 am बजे UTC
- लेखक
- kamo
- Commit
- f55a95c
KToken एक वास्तविक टोकन की पुष्टि नहीं कर सकता। चार ids यह किया जाता है int64s, और जावा हस्ताक्षरकर्ता (kamo-shared-library KToken#canonicalForMac) प्रत्येक को एक कच्चे `long` के रूप में प्रस्तुत करता है, इसलिए सभी 19 अंक मैक सामग्री में जाते हैं। इस वर्ग ने उन्हें संख्या () के साथ पढ़ा, जो पिछले दौरों में है 2^53, और हर सेट्टर ने तब `v' 0` -- राउंडिंग के शीर्ष पर 32-bit truncation लागू किया। 1168485648209608710 एक छोटे से पूर्णांक के रूप में बाहर आया, फिर से स्थापित HMAC मैच नहीं किया था एक सर्वर पर हस्ताक्षर किए गए, और parseAndVerifyCookie वापस लौटे: एक वैध टोकन पढ़ने के रूप में जाली। यह हमेशा खुद के साथ सहमत हो गया, ids पर प्रतिनिधित्व करने के लिए काफी छोटा है। ids अब कुकी के अपने अंक स्ट्रिंग हैं, इसलिए सामग्री साइनर बाइट से मेल खाती है बाइट के लिए, और नंबर () के बजाय आकार द्वारा मान्य हैं, जो हार जाएगा बिंदु। एक्सीरी एक नंबर रहता है - epoch सेकंड ~1.8e9 हैं और कोई खतरा नहीं है। कुछ भी नहीं कॉल parseAndVerifyCookie आज, तीन अगली क्षुधा में से किसी में; कुकी है सेवाओं के लिए आगे बढ़ना क्रियाकलाप. इसलिए यह एक आउटेज के बजाय एक लैंडमीन को ठीक करता है - लेकिन यह एक दूसरे के रास्ते में एक लैंडमीन है, जहां असफलता एक अस्वीकार लॉगिन की तरह दिखेगी बल्कि एक गोल बग के बजाय। नए परीक्षण उत्परिवर्तन साबित होते हैं: 6 में से 4 पिछले कार्यान्वयन के खिलाफ विफल हो जाते हैं। एक ही फिक्स कामो-लॉगिन और कामो-रजिस्टर को जाता है, जो इस की विविध प्रतियां लेता है समान दोष के साथ फ़ाइल।.