Специалистът по сигурност Кристофър Домас откри необичаен начин за заобикаляне на защитата на паметта в някои процесори на AMD. За да се промени представянето на оперативна памет е достатъчно да се промени един бит в настройките на контролера, след което системата получава възможност да осъществява достъп до области, които обикновено са скрити дори от ядрото на операционната система. Разработеният от специалиста метод получи името Skitter Creek Bath Salts.

Проблемът засяга процесорите AMD от сериите 15h и 16h, произвеждани през първата половина на 2010-те години. AMD потвърди уязвимостта в бюлетина AMD-SB-7068. Компанията обясни, че регистрите на контролера на паметта, отговарящи за преобразуването на системните адреси не могат да бъдат блокирани след настройката. Злоумишленик с достатъчни права е в състояние да ги промени по време на работата на компютъра.

Обикновено процесорът строго разделя обикновената и защитената памет. Някои участъци от оперативната памет са запазени за служебни компоненти и са недостъпни дори за операционната система. Преди обаче да се осъществи достъп до паметните чипове, физическият адрес преминава през контролера, който определя конкретния канал, модул и клетка. Skitter Creek Bath Salts се намесва именно на последния етап от преобразуването на адреса.

Домас показа, че промяната на един бит в регистъра на контролера променя схемата на разпределение на адресите по паметните банки. В резултат на това един и същ физически адрес започва да сочи към друга клетка. Защитните механизми на процесора при това продължават да работят с предишните адреси и не забелязват подмяната. По този начин може да се избере обикновен достъпен адрес, който след промяна на схемата на отразяване ще доведе до нужната клетка в рамките на затворената област.

Основната трудност не се състои в самото превключване, а в това да се определи къде са се преместили данните. Skitter Creek Bath Salts събира двойки от изходни и променени адреси, след което решаващият модул Z3 възстановява математическото преобразуване между двете паметни схеми. Получената карта позволява да се изчисли адресът, чрез който може да се осъществи достъп до конкретен защитен участък от оперативната памет.

По време на такова превключване съдържанието на паметта на практика се разбърква, поради което обичайната работа на процесора бързо би довела до срив. Авторът на метода за кратко време деактивира прекъсванията и допълнителните ядра, предварително подготвя кеша и таблиците за преобразуване на адресите, променя настройките на контролера, чете необходимите данни и веднага възстановява първоначалната конфигурация. Компютърът все пак може да зацикли по време на първоначалното изграждане на картата, но след получаването ѝ заявките могат да се насочват към предварително изчислени области.

В демонстрацията Домас е получил достъп до защитената памет на процесора за сигурност на платформата AMD PSP, до областите на режима за управление на системата SMM и до данните, които се съхраняват в оперативната памет при преминаването на процесора в енергоспестяващо състояние C6. Проектът разглежда също така достъпа до компоненти на процесора от ниско ниво, включително неговия микрокод. Изходният код и техническото описание на Skitter Creek Bath Salts са публикувани от автора в GitHub.

За обикновения потребител непосредствената опасност е малка. Методът не позволява дистанционно да се поеме контрол над компютъра от нулата. Според оценката на AMD, злонамереният потребител трябва предварително да разполага с администраторски права или възможност да изпълнява код на ниво ядро. Едва след получаване на такива привилегии е възможно да се променят настройките на контролера на паметта и да се заобиколи допълнителната хардуерна изолация.

Няма да има поправки за засегнатите процесори. AMD вече е прекратила поддръжката за сигурност на сериите 15h и 16h, поради което устройствата вече не получават съответните актуализации. Компанията е посочила прекратяването на поддръжката като единствен статус за засегнатите модели.