یک آسیبپذیری امنیتی در ماژول ZenHive mpp شناسایی شده است که به مهاجمان اجازه میدهد از طریق تکنیک Capture-replay، فرآیند احراز هویت را دور بزنند. این نقص امنیتی که با شناسه CVE-2026-87119 ثبت شده است، مستقیماً بر سیستم پرداخت و فعالسازی اشتراکها تأثیر میگذارد.
تحلیل فنی نقص امنیتی
در این سیستم، پرداختکننده یک Tempo KeyAuthorization را بر روی فیلدهایی شامل chain id، key type، key id، expiry، limits و scopes امضا میکند. مشکل اصلی این است که هیچ مکانیزمی برای پیوند دادن این امضا به Challenge (چالش) صادر شده وجود ندارد.
به دلیل نبود یک مقدار یکتا یا Nonce که امضا را به درخواست خاصی متصل کند، مهاجم میتواند اعتبارنامههای فعالسازی اشتراک (Subscription Activation Credentials) را ضبط کرده و مجدداً ارسال کند. در نتیجه، تابع MPP.Methods.Tempo.KeyAuthorization.verify/3 در مسیر lib/mpp/methods/tempo/key_authorization.ex، فیلدهای امضا شده را با درخواست اشتراک تطبیق داده و اجازه دسترسی را صادر میکند، بدون اینکه متوجه شود این درخواست یک تکرار (Replay) از یک تراکنش قبلی است.
پیامدها و ریسکها
- Charge Repetition: مهاجم میتواند با استفاده از اعتبارنامههای ضبط شده، هزینههای اشتراک را بهطور مکرر از حساب پرداختکننده کسر کند.
- Unauthorized Access: دور زدن مکانیزمهای احراز هویت برای دسترسی به سرویسهای پولی.