Microsoft коригира уязвимост за локална ескалация на привилегии в WalletService в Windows. Този недостатък може да позволи на стандартен потребител да придобие пълен контрол над засегнатата машина, оперирайки като NT AUTHORITY\SYSTEM.

Уязвимостта засяга конкретно WalletService, компонент на LocalSystem, използван от публичния Windows Wallet WinRT API. Microsoft оцени този проблем като важен, присвоявайки му CVSS резултат от 7.8.

Компанията го категоризира като неправилно управление на привилегиите и небезопасно разрешаване на пътя до файлове. Заслугата за откриването на уязвимостта е на Chen Le Qi и Mochi Nishimiya от STAR Labs SG. Атаката започва, когато потребител с ниски привилегии промени местоположението на своята известна папка Documents.

WalletService обработва заявки към Wallet API, използвайки пътя до Documents на повикващия, но след това спира да имитира този потребител и продължава да работи с привилегии на LocalSystem. Той добавя фиксирано име на директория Wallet и се опитва да отвори файл с име „wallet.db“ с повишени привилегии.

Това създава значителна граница на доверие. Въпреки че услугата работи под LocalSystem, пътят до базата данни може да бъде повлиян от стандартен потребител чрез картографирането на неговата папка Documents.

Атакуващ може да настрои злонамерена директория Wallet и да постави специално изработена база данни Extensible Storage Engine (ESE) в нея, преди да задейства услугата.

Публичният Wallet API предоставя път за атаката. Стандартен потребител може да поиска Wallet хранилище и да изброи Wallet елементи, подтиквайки WalletService да инициализира своята база данни.

Докато изследователите установиха, че директното активиране на частни компоненти на Wallet е ограничено, поддържаният публичен API все още води до същия процес на привилегирована инициализация.

Основният проблем се крие в обратните повиквания (callbacks), съхранени в ESE. Базите данни на ESE могат да съдържат метаданни, които указват на енджина на базата данни да зареди DLL и да извика конкретна експортирана функция.

Въпреки че тази функция е предназначена за доверени бази данни, WalletService позволява съхранени обратни повиквания преди отваряне на база данни, предоставена чрез контролиран от потребителя път. Атакуващ би могъл да създаде файл „wallet.db“, съдържащ необходимата таблица Cards и препратка за обратно повикване, сочеща към DLL, който той контролира.

Когато WalletService отвори тази база данни с привилегии на LocalSystem, ESE разрешава обратното повикване и зарежда DLL файла в рамките на процеса WalletService, обикновено „svchost.exe“, който се изпълнява като SYSTEM. Това дава възможност за изпълнение на код на най-високото ниво на локални привилегии.

Изследователят от GitHub David Carlier демонстрира как зареден DLL проверява своя SYSTEM контекст и инжектира SYSTEM токен в активната десктоп сесия, стартирайки интерактивен команден ред на NT AUTHORITY\SYSTEM.

Забележително е, че този експлойт не изисква повреждане на паметта (memory corruption), състезание за ресурси (race condition) или администраторски привилегии. Той просто разчита на това, че WalletService се доверява на база данни, намираща се в път, извлечен от пренасочената папка Documents на стандартен потребител.

За да смекчи тази уязвимост, идентифицирана като CVE-2026-49176, юлската актуализация на Microsoft от 2026 г. изключва засегнатия наследен път на базата данни на WalletService чрез функция за обслужване, известна като WalletServiceRedirectionGuard.

При коригирани системи, въпреки че WalletService все още може да създава празна директория Wallet, той няма да отваря „wallet.db“, да създава поддържащи файлове на ESE, да променя разрешенията за директории или да обработва съхранени обратни повиквания.

На защитниците се препоръчва незабавно да инсталират корекциите за сигурност на Microsoft. Екипите по сигурността трябва също така да наблюдават за необичайни промени в картографирането на потребителските папки Documents, достъп на WalletService до „wallet.db“ извън очакваните местоположения на профили, както и за процеси „svchost.exe“, хоствани от WalletService, които зареждат DLL файлове от папки с права за запис от потребителя.

Освен това наличието на краткотрайни SYSTEM услуги или стартирани от SYSTEM командни обвивки (shells) в интерактивни сесии може да показва опити за експлоатиране на тази уязвимост.