
CVE-2025-0886 に対するローカル権限昇格 PoC エクスプロイトです。Windows 上で動作する Elliptic Virtual Lock Sensor バージョン 3.1.60531.2 を標的としており、これは特定の Lenovo ノートパソコンモデルにデフォルトでインストールされています。レジストリキーのアクセス許可を変更することで、通常のユーザーコンテキストから SYSTEM のコンテキストでペイロードを実行できます。
Lenovo の公式アドバイザリ: https://support.lenovo.com/us/en/product_security/LEN-182738
使用前に 注意事項 をお読みください。
git clone --recursive でリポジトリをクローンします。VirtualLockSensorLPE.exe COMMAND
VirtualLockSensorLPE.exe "cmd /c echo test > C:\Windows\System32\poc.txt"

脆弱なバージョンの Elliptic Virtual Lock Sensor は、以下のレジストリキーを使用します(Everyone に Full Control が付与されています):
HKLM\SOFTWARE\Elliptic Labs\Virtual Lock Sensor\UserSettings\OnBatteryHKLM\SOFTWARE\Elliptic Labs\Virtual Lock Sensor\UserSettings\PluggedIn通常のユーザーはソフトウェアの再インストールを開始できます。上記のレジストリキーのいずれかの下に「コンテナ継承」("CI" フラグ)を有効にしたサブキーを作成し、その新しいキーの下にレジストリリンクを作成すると、再インストール中にそのリンクのターゲットに対して Everyone に Full Control が付与されます。
この PoC は以下の手順で脆弱性を悪用します:
HKLM\SOFTWARE\Elliptic Labs\Virtual Lock Sensor\UserSettings\PluggedIn の下に、Everyone に Full Control が付与され、「コンテナ継承」("CI" フラグ)が有効なサブキー(名前は a)を作成します。a)の下に、HKLM\SYSTEM\CurrentControlSet\Services\edgeupdate を指すレジストリリンク(名前は b)を作成します。Everyone が edgeupdate キーに対して Full Control を持つようになったため、そのキーの ImagePath 値をペイロードを指すように変更できます。edgeupdate (Microsoft Edge Update Service) サービスを開始して、SYSTEM のコンテキストでペイロードを実行します。HKLM\SYSTEM\CurrentControlSet\Services\edgeupdate レジストリキーのアクセス許可をリセットしようとはしないため、手動でリセットする必要があります(実稼働システムでテストしている場合は、忘れずに実行してください)。MsiReinstallProductW に渡すプロダクトコードを変更する必要があると思われます)。edgeupdate)の構成を変更して任意のペイロードを指すようにすることでこれを実現しています。この手法にはいくつかの制限があります:
edgeupdate サービスがすでに実行されている場合、ペイロードは実行されません。1〜2 分待ってからエクスプロイトを再実行してください。cmd)、Windows はしばらくするとその実行を停止します。