
CVE-2026-82090 · CVSS 9.2 حرج · XSS مخزّن بدون نقر في Mozilla Pocket — جميع الإصدارات (v0 → v8.33.0.0) · ثغرة عمرها 18 عامًا · لا يوجد إصلاح · نشرتها MITRE
المؤلف: Ing. Zampier Zago (FUNFACTOR1) القسم: القسم 1 — قسم الأمن السيبراني، PS 1978 Limited جهة الاتصال: [email protected] الموقع: www.ps1978ltd.it التصنيف: تحليل ثغرة أمنية — CVE-2026-82090
إخلاء مسؤولية المحتوى ثنائي الاستخدام: يحتوي هذا المستودع على تحليل ثغرة أمنية وإثبات مفهوم (PoC) لمنتج انتهى عمره الافتراضي (EOL). المعلومات والكود المقدمة هي لأغراض تعليمية بحتة، وللتحليل الدفاعي، والتوثيق الرسمي لـ CVE. لا يتحمل المؤلف أي مسؤولية عن أي إساءة استخدام لهذه المعلومات.
https://github.com/user-attachments/assets/e2b0aa46-df64-452b-afbf-fa31dd8c650d
تم تأكيد ثغرة برمجة عبر المواقع (XSS) قائمة على DOM في Pocket Android الإصدار 8.33.0.0 (الحزمة com.ideashower.readitlater.pro)، وهو الإصدار النهائي الذي أصدرته Mozilla / Read It Later, Inc. قبل إنهاء الخدمة في يوليو 2025. تسمح الثغرة للمهاجم بحقن وتنفيذ JavaScript عشوائي في WebView الخاص بالتطبيق دون أي تفاعل من المستخدم يتجاوز إجراء "Save to Pocket" واحد — استغلال بنقرة صفرية بعد التسليم.
السبب الجذري هو الحقن غير المعقّم لمحتوى HTML من مصدر خارجي مباشرةً في DOM عبر طريقة .html() الخاصة بـ jQuery ($(document.body).html(content))، في الملف المضمّن مع الأصول assets/html/j/articleview-mobile.js (الأسطر 95–99). يتم جلب المحتوى وعرضه تلقائيًا في الخلفية بواسطة com.pocket.sdk.offline.DownloadingService دون الحاجة إلى أي تفاعل من المستخدم.
يكشف التطبيق أيضًا عن جسر أصلي من Java إلى JavaScript (PocketAndroidArticleInterface)، مسجّل عبر addJavascriptInterface ومؤكد في classes2.dex، يمكن استدعاؤه بواسطة JavaScript المنفّذ داخل WebView.
سجل الإفصاح للمورّد: تم الإبلاغ رسميًا عن ثغرة XSS إلى Mozilla Security في 2024-07-10 بتصنيف CWE-79 وتفاصيل تقنية كاملة. أقرّت Mozilla بالاستلام في 2024-07-11 ورفضت صراحةً المعالجة، معلنةً أن Pocket خارج النطاق. أصدرت Mozilla لاحقًا الإصدار v8.33.0.0 في 2025 مع بقاء الكود المصاب دون أي تغيير. يؤكد التحليل الجنائي للإصدار v8.33.0.0 وجود الاستدعاء المصاب المطابق في الأسطر 95–99 من articleview-mobile.js.
التسلسل: نفس السطر المطابق — $(document.body).html(content)، في ملف يحمل نفس الاسم articleview-mobile.js — موجود في حزمة نظير iOS ReadItLaterPro.app (Pocket iOS v4.5.2)، ويعود إلى الحقبة التي سبقت مباشرةً إعادة تسمية Read It Later إلى Pocket في 17 أبريل 2012. تغطي ثغرة CVE جميع الإصدارات من v0 حتى v8.33.0.0 — فقد ظل العيب يُشحن باستمرار، دون تعديل، طوال عمر المنتج البالغ 18 عامًا (انظر §7). يؤرّخ التأكيد الجنائي على مستوى الكود عبر أقدم حزمة متاحة (iOS v4.5.2) نقطة الحقن المطابقة إلى عام 2012 على الأقل.
لا يوجد تصحيح متاح. المنتج مهجور. تظل جميع النسخ المثبّتة عرضة للثغرة بشكل دائم.
com.ideashower.readitlater.procom.ideashower.readitlater.pro_8.33.0.0.apkhttps://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro لكن التطبيق لم يعد متاحًا للتنزيل.الملف: assets/html/j/articleview-mobile.js
الأسطر 95–99:```javascript
// article content was retrieved
loadCallback : function(content)
{
// TODO : 3.0 : If file was missing, handle that correctly
$(document.body).html(content);
**السبب الجذري:** يتم تمرير HTML من مصدر خارجي مباشرةً إلى طريقة `.html()` في jQuery 3.4.1 دون أي تعقيم. ينفّذ jQuery 3.4.1 وسوم `<script>` المضمّنة ومعالجات الأحداث المضمّنة (`onerror`، `onload`). لا يوجد أي استدعاء لـ `DOMPurify` أو `sanitize()` أو `escapeHtml()` أو ما يعادلها في أي مكان من الملف المكوّن من 1,836 سطرًا. ينشأ المتغير `content` من طبقة Java دون تصفية من جانب JS.
يوضّح التعليق `// TODO : 3.0 : If file was missing, handle that correctly` الذي يسبق الاستدعاء الثغرة مباشرةً أن الكود لم يُقوَّ ليصبح جاهزًا للإنتاج قط. كان هذا التعليق موجودًا في كل إصدار من التطبيق حتى الإصدار النهائي v8.33.0.0.
### 3.3 أدلة جسر JavaScript
**الملف:** `assets/html/j/articleview-mobile.js`، الأسطر 11–14:```javascript
// Android comm object
if (typeof PocketAndroidArticleInterface == 'undefined')
PocketAndroidArticleInterface = false;
isAndroid = !!PocketAndroidArticleInterface;
تم التأكيد عبر تحليل سلاسل DEX (classes2.dex):```
PocketAndroidArticleInterface
setJavaScriptEnabled
addJavascriptInterface
طرق الجسر المؤكدة من مواقع استدعاء JS: `onReady()`, `onError()`, `onScrollChanged()`, `setFrozen()`, `placePageBlockers()`, `toggleFullscreen()`, `setViewType()`, `scrollToPosition()`, `onTextSearch()`, `onRequestedHighlightPatch()`, `updatePageSwipingDisabledAreas()`, `getHorizontalMargin()`, `getMaxMediaHeight()`, `isConnected()`.
### 3.4 خدمة المزامنة في الخلفية
يؤكد **AndroidManifest.xml** على:```xml
<service
android:name="com.pocket.sdk.offline.DownloadingService"
android:permission="android.permission.FOREGROUND_SERVICE_DATA_SYNC">
مع تسجيل مستقبل BOOT_COMPLETED. تقوم الخدمة بجلب محتوى المقالة وعرضه تلقائيًا عند إقلاع الجهاز وتوفر الشبكة، مما يُفعّل loadCallback في WebView مخفي دون أي تفاعل من المستخدم.
Phase 1 — Content Injection [CONFIRMED] Attacker hosts page with XSS payload. Victim saves URL via "Save to Pocket". Malicious HTML stored in local Pocket database.
Phase 2 — Zero-Click Background Sync [CONFIRMED] DownloadingService auto-starts on boot (BOOT_COMPLETED). Fetches article content silently, no user interaction.
Phase 3 — Automatic WebView Rendering [CONFIRMED] Pagination engine (updatePaging) triggers hidden WebView render. No user opens the article.
Phase 4 — JavaScript Execution [CONFIRMED] loadCallback calls $(document.body).html(content). jQuery 3.4.1 executes embedded scripts and event handlers.
Phase 5 — Native Bridge Reachability [PARTIAL] Bridge object PocketAndroidArticleInterface is reachable from the XSS execution context (confirmed via classes2.dex string analysis and JS call-site inventory). Full native method surface and downstream impact pending complete JADX decompilation.
## 4. إثبات المفهوم```html
<!DOCTYPE html>
<html>
<body>
</body>
</html>
خطوات إعادة الإنتاج:
DownloadingService المحتوى تلقائيًا.loadCallback → $(document.body).html(content) → ينطلق الحمولة.ملاحظة حول نطاق المنصة لإثبات المفهوم: يستهدف إثبات المفهوم القابل للتنفيذ أعلاه إصدار Android، وهو حالة النقرة الصفرية (خدمة
DownloadingServiceفي الخلفية). أما نظيره في iOS (Pocket iOS v4.5.2 /ReadItLaterPro.app) فيشترك في نفس الحوضloadCallback()القابل للاستغلال في ملف يحمل الاسم ذاته، لكنه يصل إلى الشيفرة الأصلية عبر آلية جسر مختلفة (مخطط URLx-ril-cmd:الذي يعترضه مفوّضUIWebView) ويتدهور إلى حالة نقرة واحدة (يجب على المستخدم فتح مقالة محفوظة). تم إثبات أدلة iOS عبر التحليل الساكن لحزمة التطبيق المُوزَّعة، وهي موثّقة بالكامل فيiOS_forensic_analysis_v4.5.2.mdفي هذا المستودع. لم يُنشر إثبات مفهوم iOS قابل للتنفيذ منفصل؛ ويُظهر تحليل قاعدة الشيفرة المشتركة تكافؤ الحوض عبر المنصتين.
المتجه الكامل: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
النتيجة الأساسية: 9.2 — حرجة
جميع التواريخ موثّقة مقابل أدلة البريد الإلكتروني الأصلية (POCKET_MAIL.pdf، POCKET_MAIL1.pdf، CRONO2.pdf).
يؤكد سجل CVE أن جميع الإصدارات من v0 حتى v8.33.0.0 متأثرة. العيب ليس ارتدادًا — بل هو البنية الأصلية لخط أنابيب عرض المقالات، موجود منذ إطلاق Read It Later كإضافة Firefox في 2007، وانتقل إلى تطبيقات الجوال (Android من 2011، وiOS قبل ذلك)، وشُحن دون تغيير حتى إصدار Android النهائي في 2025. يمتد التأكيد الجنائي على مستوى الشيفرة للحوض القابل للاستغلال المطابق إلى 2012 عبر أقدم حزمة متاحة (iOS v4.5.2).
ReadItLaterPro.app)حزمة تطبيق iOS تحمل اسم ReadItLaterPro.app — اسم المنتج قبل إعادة العلامة التجارية الذي استخدمته Read It Later, Inc. قبل أن تعيد الشركة تسمية التطبيق علنًا إلى Pocket في 17 أبريل 2012. تستهدف الحزمة iOS 5.0+، مما يضع قاعدة الشيفرة في الإطار الزمني 2011–أوائل 2012.
يؤكد التحليل الجنائي لحزمة iOS هذه وجود نمط قابل للاستغلال مطابق حرفيًا في ملف يحمل الاسم ذاته كإصدار Android. التحليل الجنائي الكامل لـ iOS — الحوض القابل للاستغلال، وخط أنابيب المحتوى، والجسر الأصلي، وجرد القياس عن بُعد، ومراجع الأدلة — منشور في هذا المستودع باسم iOS_forensic_analysis_v4.5.2.md.
الملف: manifest/cache/j/articleview-mobile.js (iOS) — نفس اسم الملف assets/html/j/articleview-mobile.js (Android)
الأسطر 97–107 (iOS):```javascript // article content was retrieved loadCallback : function(content) { // TODO : 3.0 : If file was missing, handle that correctly
$(document.body).html(content); // ← IDENTICAL TO ANDROID
// Add empty content to bottom in case an image is at bottom.
$(document.body).append($('<br> '))
this.onArticleReady();
},
يوجد نفس التعليق `// TODO : 3.0` في كلا المنصتين — نفس العنصر النائب بالضبط، لم تتم متابعته أبدًا، على مدى ~13 عامًا.
### 7.2 تأكيد قاعدة الكود المشتركة
تحتوي حزمة iOS على منطق صريح للتفرع حسب المنصة يُثبت أن Read It Later, Inc. / Mozilla شحنت **قاعدة كود JavaScript مشتركة واحدة** إلى كلتا المنصتين:```javascript
var isAndroid;
if (typeof ReadItLaterJSMethods == 'undefined')
ReadItLaterJSMethods = false;
isAndroid = !!ReadItLaterJSMethods;
عندما يكون isAndroid === false يُنفَّذ مسار جسر iOS؛ وعندما يكون true يُنفَّذ مسار Android. يتقارب كلا المسارين على نفس loadCallback() القابلة للاستغلال دون أي تعقيم على أي من المنصتين.
ملاحظة حول الجدول الزمني لـ UIWebView: قدّمت Apple WKWebView كخليفة في iOS 8 (2014). تم إهمال UIWebView رسميًا في iOS 12 (2018). توقّف App Store عن قبول التطبيقات الجديدة التي تستخدم UIWebView في أبريل 2020، وعن تحديثات التطبيقات الموجودة في ديسمبر 2020. لم تتم إزالة UIWebView رسميًا من SDK أبدًا — فهي لا تزال موجودة لكنها لم تعد مقبولة لعمليات الإرسال إلى App Store. نقاط ضعفها الأمنية ذات الصلة هنا هي أنها تعمل داخل العملية نفسها (لا توجد عملية WebContent منفصلة)، ولا تدعم سياسة أمان المحتوى (Content Security Policy)، وتنفّذ JavaScript المحقونة بشكل متزامن على الخيط الرئيسي عبر stringByEvaluatingJavaScriptFromString:.
قامت Read It Later, Inc. — ولاحقًا Mozilla بعد الاستحواذ — بشحن نفس نمط حقن .html() غير المعقَّم، في ملف يحمل الاسم نفسه، مع نفس تعليق TODO غير المعالَج، طوال عمر المنتج الممتد 18 عامًا (2007 → 2025)، وهو ما أكّدته MITRE بأنه يؤثر على جميع الإصدارات من v0 حتى v8.33.0.0.
يشمل ذلك الفترة التي تلت تقرير CWE-79 الرسمي بتاريخ 2024-07-10. تم إنتاج سلسلة إصدارات Android إضافية واحدة على الأقل في 2024–2025 (بلغت ذروتها في v8.33.0.0) مع الحفاظ على الكود القابل للاستغلال حرفيًا.
يقوم قارئ مقالات Pocket بحقن HTML خام مصدره خارجي في DOM عبر $(document.body).html(content) دون أي تعقيم. يؤكد تعليق // TODO في السطر 95 أن الكود لم يُقوَّ أبدًا للإنتاج. كان هذا الخيار المعماري موجودًا منذ أقدم إصدارات الجوال (انظر §7) حتى إصدار Android النهائي v8.33.0.0 — دون تغيير على مدى ما يقارب 13 عامًا وعلى الأقل انتقال ملكية كامل واحد، ودون تغيير بعد تقرير أمني رسمي في يوليو 2024.
للاطلاع على الجدول الزمني لاستجابة المورّد بعد 2024 والتسلسل الدقيق بين تقرير CWE-79 الرسمي، ورفض Mozilla، والإصدار النهائي غير المُرقَّع، راجع §6.
لا توجد تخفيفات من المورّد ولا يُتوقع صدورها.
للمستخدمين النهائيين: قم بإلغاء تثبيت com.ideashower.readitlater.pro فورًا. وأبطل تصاريح Google OAuth.
لمجتمع الأمن: تُصنَّف هذه الحالة كـ "Forever-Day" — ثغرة مؤكدة، غير مُرقَّعة، في برمجيات مهجورة دون أي مسار معالجة متاح. مناسبة للتصنيف تحت وسم Unsupported When Assigned وفقًا لسياسة MITRE EOL.
ملف APK الذي تم تحليله: com.ideashower.readitlater.pro_8.33.0.0.apk
الأدوات: Android Studio، DEX2JAR، مراجعة الكود يدويًا، تحليل AXML الثنائي (UTF-16LE)، فحص مخطط Protocol Buffer، استخراج سلاسل DEX. تم فحص حزمة iOS عبر استخراج السلاسل ومراجعة المصدر لخط أنابيب JavaScript المضمّن.
سلسلة الأدلة:```
APK acquired └── com.ideashower.readitlater.pro_8.33.0.0.apk
Decompiled ├── assets/html/j/articleview-mobile.js (XSS — lines 95–99) ├── assets/html/article-mobile.html (jQuery 3.4.1) ├── AndroidManifest.xml (DownloadingService, SDK receivers) └── classes.dex / classes2.dex / classes3.dex
iOS counterpart bundle acquired and analyzed └── ReadItLaterPro.app (Pocket iOS v4.5.2) └── manifest/cache/j/articleview-mobile.js (XSS — lines 97–107) └── full analysis: iOS_forensic_analysis_v4.5.2.md
Vendor communication record └── Original emails verified: POCKET_MAIL.pdf, POCKET_MAIL1.pdf, CRONO2.pdf First report: 2021-04-19 XSS formally reported: 2024-07-10 Vendor final refusal: 2024-07-11
Dynamic evidence └── Video recording 2026-01-02: app fully operational post-sunset on real device
---
## 11. سجل CVE
**معرّف CVE:** CVE-2026-82090 — نُشر في 2026-08-28 بواسطة MITRE Corporation (CNA). قُدّم أصلاً باسم CAN-2026-2030598 عبر cveform.mitre.org.
**المورّد:** Mozilla Corporation
**المنتج:** Pocket (Android)
**الإصدار:** 8.33.0.0
**نوع الثغرة:** Cross-Site Scripting (XSS)
**الوصف (لـ cveform.mitre.org):**```
** UNSUPPORTED WHEN ASSIGNED ** A DOM-Based Cross-Site Scripting
(XSS) vulnerability (CWE-79) in the articleview-mobile.js
component of Mozilla Pocket for Android through version 8.33.0.0
allows remote attackers to execute arbitrary JavaScript within
the application's WebView. By leveraging the background
DownloadingService, a crafted HTML payload is processed
automatically without user interaction (zero-click), allowing
interaction with the native PocketAndroidArticleInterface Java
bridge.
NOTE: This product is End-of-Life and no longer supported by
the vendor.
معلومات إضافية / التواصل مع المورّد:``` First disclosure: 2021-04-19 (paywall bypass). Formal security report identifying XSS (CWE-79): 2024-07-10 to Mozilla Security. Vendor response (2024-07-11): Product declared out of scope. Final APK v8.33.0.0 released in 2025 with vulnerable code unchanged. Service sunset 2025-07-08. Product is abandoned. The same vulnerable line is present in the iOS counterpart bundle (ReadItLaterPro.app, v4.5.2, circa 2012), evidencing ~13 years of unmodified shipment across both mobile platforms.
## 12. المراجع
- CVE-2026-82090 (السجل الرسمي): https://www.cve.org/CVERecord?id=CVE-2026-82090
- CWE-79: https://cwe.mitre.org/data/definitions/79.html
- CWE-116: https://cwe.mitre.org/data/definitions/116.html
- مواصفات CVSS v4.0: https://www.first.org/cvss/v4.0/specification-document
- عملية إنهاء صلاحية CVE من MITRE: https://www.cve.org/Resources/General/End-of-Life-EOL-Assignment-Process.pdf
- القواعد التشغيلية لـ CNA من MITRE: https://www.cve.org/resourcessupport/allresources/cnarules
- سلوك jQuery `.html()`: https://api.jquery.com/html/
- Android `addJavascriptInterface`: https://developer.android.com/reference/android/webkit/WebView#addJavascriptInterface(java.lang.Object,%20java.lang.String)
- Apple — إيقاف دعم `UIWebView`: https://developer.apple.com/documentation/uikit/uiwebview
- Apple — تحديث التطبيقات التي تستخدم Web Views (مواعيد App Store النهائية لـ UIWebView): https://developer.apple.com/news/?id=12232019b
- إعادة تسمية Read It Later → Pocket (17 أبريل 2012): https://blog.getpocket.com/2012/04/introducing-the-all-new-read-it-later-now-called-pocket/
---
*Ing. Zampier Zago (FUNFACTOR1) — القسم 1 — قسم الأمن السيبراني، PS 1978 Limited — [email protected] — [www.ps1978ltd.it](http://www.ps1978ltd.it) — https://github.com/FUNFACTOR1*
| الحقل | القيمة |
|---|
| CVE | CVE-2026-82090 — نُشرت 2026-08-28 — CNA: MITRE Corporation |
| نوع الثغرة | XSS قائمة على DOM (بنقرة صفرية) + إساءة استخدام جسر JavaScript |
| CWE | CWE-79، CWE-116 |
| حالة الاستغلال | بنقرة صفرية، ثغرة يوم صفر — لا يوجد تصحيح متاح؛ المنتج انتهى عمره الافتراضي |
| استجابة المورّد | 2024-07-11 — "Pocket خارج النطاق" (Frida، فريق Mozilla Security) |
| المنتج المتأثر | Pocket Android v8.33.0.0 (الإصدار النهائي) |
| معرّف الحزمة | com.ideashower.readitlater.pro |
| المورّد | Mozilla Corporation / Read It Later, Inc. |
| درجة CVSS v4.0 | 9.2 — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| الخطورة | حرجة |
| أول إبلاغ للمورّد | 2021-04-19 (تجاوز الجدار المدفوع) |
| الإبلاغ الرسمي عن XSS إلى Mozilla Security | 2024-07-10 |
| آخر APK صدر مع بقاء الثغرة | 2025 — v8.33.0.0 |
| إيقاف الخدمة | 2025-07-08 |
| تسلسل الكود | 18 عامًا — جميع الإصدارات (v0 → v8.33.0.0، 2007 → 2025). تأكيد جنائي للكود من حزمة iOS لعام 2012. |
| الحقل | القيمة |
|---|
| النوع | برمجة عبر المواقع قائمة على DOM |
| CWE | CWE-79 — التحصين غير السليم للمدخلات أثناء توليد صفحة الويب |
| CWE الثانوي | CWE-116 — الترميز أو التهريب غير السليم للمخرجات |
| ناقل الهجوم | عن بُعد، بنقرة صفرية (تفاعل مستخدم صفري بعد التسليم) |
| الامتيازات المطلوبة | لا شيء |
| النطاق | متغيّر — سياق WebView يعبر حدود الثقة إلى الجسر الأصلي في Android |
| المقياس | القيمة | التبرير |
|---|
| متجه الهجوم (AV) | شبكة (N) | تُسلَّم الحمولة وتُنفَّذ عبر الإنترنت |
| تعقيد الهجوم (AC) | منخفض (L) | لا توجد حالات تسابق أو حمايات ذاكرة يجب تجاوزها |
| متطلبات الهجوم (AT) | موجودة (P) | يجب أن يكون المستخدم قد حفظ مقالة واحدة على الأقل قبل الهجوم لتفعيل المزامنة في الخلفية |
| الامتيازات المطلوبة (PR) | لا شيء (N) | لا يلزم مصادقة على الهدف |
| تفاعل المستخدم (UI) | لا شيء (N) | التنفيذ تلقائي عبر خدمة الخلفية بعد الحفظ |
| سرية الثغرة (VC) | عالية (H) | رموز الجلسة، قاعدة بيانات المقالات، عادات القراءة مكشوفة |
| سلامة الثغرة (VI) | عالية (H) | يمكن لـ JS تغيير حالة التطبيق عبر طرق الجسر الأصلي |
| توافر الثغرة (VA) | عالية (H) | يمكن تعطيل توافر خدمة الخلفية |
| اللاحق (SC / SI / SA) | لا شيء (N) | التأثير المُثبَت محصور داخل حدود الثقة في Android Application Sandbox / WebView. لم يُثبَت أي انتقال إلى نظام لاحق منفصل؛ تم ضبط SC/SI/SA على None بشكل متحفظ لتجنب المبالغة في الادعاء |
| مستوى المعالجة (RL) | غير متاح (U) | المنتج مهجور؛ لا تصحيح قادم |
| التاريخ | الحدث | المصدر / الأطراف |
|---|
| 2021-04-19 | تقرير أولي إلى دعم Pocket: تجاوز الجدار المدفوع الذي يسمح بالتحايل على ضوابط وصول الناشرين على مواقع الأخبار الإيطالية. تم تقديم فيديو ولقطات شاشة وعناوين URL مثال. | Zampier Zago → [email protected] |
| 2021-04-22 | رد دعم Pocket: طلب عناوين URL محددة ولقطات شاشة. | Pocket Support (Manuel) → Zampier Zago |
| 2021-05-17 | قدّم الباحث عنواني URL حيّين لإثبات المفهوم يُظهران تجاوز المحتوى الكامل. | Zampier Zago → [email protected] |
| 2021–2024 | لا إجراء إضافي من المورّد. موقف المورّد الأولي: "ليس بسبب Pocket." شكّك الباحث في اكتشافه لمدة ثلاث سنوات نظرًا للرفض القاطع. | — |
| ~يونيو 2024 | يُجري الباحث تحليل APK، ويحدد XSS في WebView (articleview-mobile.js)، ومتجه إساءة استخدام جسر JavaScript، وCWE-79 / CWE-200 / CWE-693. | Zampier Zago |
| 2024-05-31 | إعادة فتح القضية رسميًا. تأكيد عام من طرف ثالث لتجاوز الجدار المدفوع المطابق (bardeen.ai). يشير الباحث إلى تقرير 2021 الأصلي. | Zampier Zago → [email protected] |
| 2024-06-06 | دعم Pocket (Alejandra Galo): تم التصعيد داخليًا، لم يُلتزم بأي إصلاح. "Our Parser is not designed to bypass said Paywalls." | Pocket Support → Zampier Zago |
| 2024-07-02 | يرسل الباحث متابعة رسمية إلى Pocket/Mozilla Security Team عبر تذكرة الدعم #151540، مع الإشارة صراحةً إلى التقرير الأول لعام 2021 وطلب إقرار رسمي. | Zampier Zago → [email protected] |
| 2024-07-04، 13:18 CST | دعم Pocket (Dayana Galeano): يعيد التوجيه إلى [email protected]. "Since you're reporting a security vulnerability, I'd encourage you to reach out to [email protected] instead." | Pocket Support → Zampier Zago |
| 2024-07-10، 21:05 | يقدّم الباحث تقريرًا أمنيًا تقنيًا كاملًا إلى Mozilla Security ([email protected]) يتضمن CWE-79 (XSS)، وCWE-200 (كشف المعلومات)، وCWE-693 (فشل آلية الحماية)، وأمثلة طلب/استجابة HTTP، وعرض حمولة XSS، وتحليل التأثير. | Zampier Zago → [email protected] |
| 2024-07-11، 09:32 | رد Mozilla Security (Frida): "Pocket is out of scope of our web bug bounty program and we only accept reports with critical severity." يطلب تقديمات فردية على HackerOne. لم يُلتزم بأي إصلاح. | Mozilla Security Team → Zampier Zago |
| 2024-07-24، 19:00 | فريق خصوصية Mozilla ([email protected]): يعيد التوجيه إلى نموذج مكافآت الأخطاء. لا تفاعل جوهري. | Mozilla Privacy Team → Zampier Zago |
| 2025 | تُصدر Mozilla v8.33.0.0 كالإصدار النهائي من Pocket Android قبل إيقاف الخدمة. الشيفرة القابلة للاستغلال في articleview-mobile.js (الأسطر 95–99) مطابقة وغير معدّلة. لم يُنشر أي تصحيح أمني. لا مفتاح إيقاف أو إلغاء تثبيت قسري. | Mozilla (عام) |
| 2025-07-08 | إنهاء خدمة Pocket رسميًا. يبقى التطبيق مثبّتًا وعاملًا على أجهزة المستخدمين. | Mozilla (عام) |
| 2026-01-02 | تسجيل دليل فيديو على جهاز حقيقي: Pocket Android v8.33.0.0 يعمل بالكامل بعد أشهر من إنهاء الخدمة. تأكيد تجاوز الجدار المدفوع نشطًا. تأكيد عمل خدمات الخلفية. (نسخة مضغوطة قابلة للتنزيل؛ الأصل مع بيانات وصفية كاملة قابلة للتحقق متاح عند الطلب.) | Zampier Zago (تسجيل فيديو) |
| الجانب | Android v8.33.0.0 (2025) | iOS v4.5.2 (~2012) |
|---|
| الملف القابل للاستغلال | assets/html/j/articleview-mobile.js | manifest/cache/j/articleview-mobile.js |
| نقطة الحقن القابلة للاستغلال | $(document.body).html(content) L95–99 | $(document.body).html(content) L97–107 |
| التعقيم | لا يوجد | لا يوجد |
| آلية الجسر الأصلي | addJavascriptInterface → PocketAndroidArticleInterface (Java) | مخطط URL من نوع x-ril-cmd: يُعترض بواسطة مفوَّض UIWebView (Objective-C) |
| يصل الجسر إلى الكود الأصلي | نعم | نعم |
| العرض التلقائي في الخلفية | نعم — DownloadingService عند BOOT_COMPLETED | لا — يجب أن يفتح المستخدم المقال |
| تفاعل المستخدم مطلوب | لا شيء (0-click) | فتح المقال (1-click) |
| نقل المقال | HTTPS | HTTP نص صريح (http://text.getpocket.com/v3beta/mobile) وقت تحليل الحزمة — ناقل MITM إضافي في النشر الأصلي (نقطة النهاية غير متصلة منذ إنهاء الخدمة) |
| تقنية WebView | Android WebView الحديثة | UIWebView (مهمَلة في iOS 12؛ غير مقبولة من App Store منذ 2020) |