The Computer Emergency Response Team of Ukraine (CERT-UA) has issued a critical warning regarding an active campaign leveraging trojanized software installers. Attackers are distributing an archive containing the legitimate Notepad++ application bundled with a malicious utility dubbed LunchPoke, which is disguised as a plugin.
This is not a supply-chain attack on the official vendor, but rather a sophisticated delivery mechanism where the weaponized archive is hosted on attacker-controlled infrastructure. Once installed by the victim, the malicious plugin is loaded, establishing persistence on the endpoint. Defenders must immediately identify instances of unauthorized Notepad++ installations and scan for the specific indicators associated with the LunchPoke payload.
Technical Analysis
Threat Overview:
The attack vector involves social engineering or direct delivery of a compressed archive. Upon extraction and execution, the victim installs a legitimate instance of Notepad++. However, the installation directory is polluted with a malicious component: LunchPoke.
Affected Component:
- Platform: Windows
- Application: Notepad++ (Trojanized bundles)
- Malicious Component: LunchPoke (Disguised as a plugin)
Attack Chain:
- Initial Access: User downloads and extracts a malicious archive containing Notepad++.
- Execution: User executes
notepad++.exeor the installer. - Payload Loading: The application loads the malicious
LunchPokeplugin from thepluginsdirectory. - Persistence: LunchPoke establishes a persistence mechanism (often via Scheduled Tasks or Registry run keys) to ensure execution survives system reboots.
Exploitation Status: Confirmed active exploitation in the wild, specifically highlighted by CERT-UA. There are no CVEs associated with this specific campaign, as the vulnerability lies in the execution of unverified software rather than a flaw in the legitimate Notepad++ codebase.
Detection & Response
Sigma Rules
The following Sigma rules detect the execution of the malicious LunchPoke utility and the anomalous creation of persistence mechanisms originating from the Notepad++ plugins directory.
---
title: Potential LunchPoke Malware Execution via Notepad++ Plugin
id: 9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects the execution of the LunchPoke utility, which masquerades as a Notepad++ plugin. This rule targets process creation events containing the LunchPoke name or originating from the plugins directory.
references:
- https://cert.gov.ua/article/37611
author: Security Arsenal
date: 2026/04/06
tags:
- attack.execution
- attack.t1204
- attack.persistence
logsource:
category: process_creation
product: windows
detection:
selection_img:
Image|contains:
- '\plugins\'
Image|contains:
- 'LunchPoke'
selection_cli:
CommandLine|contains:
- 'LunchPoke'
condition: 1 of selection_
falsepositives:
- Legitimate third-party plugins (unlikely given specific name)
level: high
---
title: Suspicious Scheduled Task Created by Notepad++ Process
id: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects the creation of a scheduled task by Notepad++, which may indicate plugin abuse like LunchPoke attempting to establish persistence.
references:
- https://cert.gov.ua/article/37611
author: Security Arsenal
date: 2026/04/06
tags:
- attack.persistence
- attack.t1053.005
logsource:
category: process_creation
product: windows
detection:
selection:
SubjectUserName|contains: 'Notepad++'
CommandLine|contains:
- 'schtasks'
- '/create'
condition: selection
falsepositives:
- Administrative automation using Notepad++
level: medium
KQL (Microsoft Sentinel / Defender)
This KQL query hunts for process creation events involving the LunchPoke binary or tasks created within the context of the Notepad++ plugins folder.
// Hunt for LunchPoke execution and plugin persistence mechanisms
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName =~ "LunchPoke.exe"
or FolderPath contains @"\plugins\LunchPoke"
or (InitiatingProcessFileName =~ "notepad++.exe" and CommandLine contains @"/create")
| project Timestamp, DeviceName, AccountName, FileName, FolderPath, CommandLine, InitiatingProcessFileName, SHA256
| order by Timestamp desc
Velociraptor VQL
This Velociraptor artifact hunts for the presence of the LunchPoke binary in common Notepad++ installation directories and checks for recently created scheduled tasks that may be linked to the malware.
-- Hunt for LunchPoke artifacts on disk
SELECT FullPath, Size, Mtime, Atime
FROM glob(globs="C:\Program Files\Notepad++\plugins\**\LunchPoke*")
WHERE Mtime > now() - 30d
-- Check for suspicious scheduled tasks linked to the plugin
SELECT TaskName, Action, Args, Author
FROM scheduler_tasks(schtask_exe="C:\Windows\System32\schtasks.exe")
WHERE Action =~ "LunchPoke" OR Args =~ "plugins"
Remediation Script (PowerShell)
Use this PowerShell script to scan endpoints for the presence of the malicious LunchPoke plugin and remove scheduled tasks associated with it.
# LunchPoke Remediation Script
# Requires Administrator privileges
Write-Host "[+] Starting scan for LunchPoke malicious plugin..." -ForegroundColor Cyan
$pathsToScan = @(
"C:\Program Files\Notepad++\plugins",
"${env:LOCALAPPDATA}\Programs\Notepad++\plugins",
"C:\Program Files (x86)\Notepad++\plugins"
)
$maliciousFiles = @()
foreach ($path in $pathsToScan) {
if (Test-Path $path) {
Write-Host "[+] Scanning $path..." -ForegroundColor Yellow
$files = Get-ChildItem -Path $path -Recurse -Filter "*LunchPoke*" -ErrorAction SilentlyContinue
if ($files) {
$maliciousFiles += $files
}
}
}
if ($maliciousFiles.Count -gt 0) {
Write-Host "[!] THREAT DETECTED: Found LunchPoke related files." -ForegroundColor Red
foreach ($file in $maliciousFiles) {
Write-Host " - Removing: $($file.FullName)" -ForegroundColor Yellow
try {
Remove-Item -Path $file.FullName -Force -ErrorAction Stop
} catch {
Write-Host "[!] Failed to remove $($file.FullName): $_" -ForegroundColor Red
}
}
} else {
Write-Host "[-] No LunchPoke files found in standard plugin directories." -ForegroundColor Green
}
# Check for Suspicious Scheduled Tasks
Write-Host "[+] Checking Scheduled Tasks for LunchPoke persistence..." -ForegroundColor Cyan
try {
$tasks = Get-ScheduledTask | Where-Object { $_.Actions.Execute -like "*LunchPoke*" -or $_.Actions.WorkingDirectory -like "*plugins*" }
if ($tasks) {
Write-Host "[!] Suspicious tasks found:" -ForegroundColor Red
foreach ($task in $tasks) {
Write-Host " - Unregistering Task: $($task.TaskName)" -ForegroundColor Yellow
Unregister-ScheduledTask -TaskName $task.TaskName -Confirm:$false
}
} else {
Write-Host "[-] No suspicious tasks found." -ForegroundColor Green
}
} catch {
Write-Host "[!] Error checking scheduled tasks: $_" -ForegroundColor Red
}
Write-Host "[+] Remediation complete. Please review Notepad++ installation source." -ForegroundColor Green
Remediation
Immediate Action Items:
- Identify Source: Determine if the Notepad++ installation was downloaded from the official website (
notepad-plus-plus.org) or an unofficial source. The malicious archive is distributed outside official channels. - Remove Malicious Files: Delete the
LunchPokeexecutable or DLL from thepluginssubdirectory within the Notepad++ installation path. - Clean Persistence: Inspect Task Scheduler (
taskschd.msc) for tasks running executables from the Notepad++pluginsdirectory and delete them. - Reinstall Official Version: Uninstall the current version of Notepad++ and download a fresh copy directly from the official vendor to ensure integrity.
- Network Blocking: Block IoCs associated with the C2 infrastructure of LunchPoke if available from your threat intelligence feeds.
Related Resources
Security Arsenal Incident Response Services AlertMonitor Platform Book a SOC Assessment incident-response Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.