CRITICAL SECURITY ALERT: Astroid Framework Global Compromise Campaign
Executive Summary
Updated Astroid version released 05/03/2026
Astroid Framework Version 3.3.11
SEVERITY: CRITICAL | ACTIVE ATTACK
A widespread, automated attack campaign is actively targeting all Joomla sites using the Astroid Framework (all versions affected, including latest releases). The attack installs persistent backdoors including the plg_system_blpayload spam injector and related payload files. This is a global incident with confirmed compromises in Switzerland, Germany, France, and internationally since March 1, 2026.
⚠️ IMMEDIATE ACTION REQUIRED: Take all Astroid-powered sites offline immediately until a security patch is released.
Attack Analysis
Primary Payload: plg_system_blpayload
This malicious system plugin acts as a SEO spam botnet agent:
- Connects to
api.hacklink.pw– a black-hat SEO backlink service - Injects spam links into your site's HTML before the
</body>tag - Multiple injection modes: Hidden (off-screen), footer, content, sidebar, or mixed visibility
- Self-enabling: Auto-activates with highest priority (ordering=9999) upon installation
- Caching mechanism: Stores spam locally in
/cache/plg_blpayload_[hash].htmlto evade detection
Secondary Payloads & Persistence
- Fake extensions with random names (e.g.,
astroid_poc_fxeolugv– first seen Feb 24, 2026) - jcachepro variant – additional backdoor plugin discovered in some infections
- Payload files dropped in
/images/directory withastroid_poc*naming pattern
Indicators of Compromise (IOCs)
Critical File Checks
Execute these commands via SSH immediately:
# Find primary backdoor plugin
find /path/to/joomla -name "*blpayload*" -type f
# Find fake astroid payload files
find /path/to/joomla/images/ -name "astroid_poc*" -type f
# Find jcachepro variant
find /path/to/joomla -name "*jcachepro*" -type d
# Search for hacklink references
grep -r "hacklink.pw" /path/to/joomla/
# Check for recently modified plugin files (last 7 days)
find /path/to/joomla/plugins/ -name "*.php" -mtime -7 -ls
Database Indicators
Query your #__extensions table for:
plg_system_blpayload(System plugin)astroid_poc_[random](Fake extensions)- Any extensions with creation dates of Feb 24, 2026 or March 1, 2026 that you did not install
Visual Verification
- View page source → Search for
hacklink.pw - Look for hidden
<div>elements withposition:absolute;left:-9999px(hidden spam links)
Emergency Response Protocol
PHASE 1: IMMEDIATE CONTAINMENT (Do This NOW)
The Joomla Security Strike Team has issued an urgent directive: Shut down all Astroid sites immediately.
Option A: .htaccess Emergency Block
# Add to .htaccess in Joomla root - blocks all access
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^.*$ - [F,L]
</IfModule>
Option B: IP-Based Access Restriction
# Deny all except your IP
deny from all
allow from YOUR.IP.ADDRESS.HERE
Option C: PHP Maintenance Mode Create index.php in Joomla root:
<?php
header('HTTP/1.1 503 Service Unavailable');
header('Retry-After: 3600');
die('Emergency maintenance in progress. Please check back later.');
?>
PHASE 2: COMPROMISE ASSESSMENT
⚠️ WARNING: Manual cleaning is NOT RECOMMENDED. These backdoors have multiple persistence mechanisms and unknown entry vectors.
Check for Compromise:
- Files: Look for
plg_system_blpayloadin/plugins/system/ - Database: Look for suspicious entries in
#__extensionswith recent dates - Images folder: Check for
astroid_poc*files - Frontend: View source and search for
hacklink.pw
PHASE 3: RECOVERY (If Compromised)
You MUST restore from a clean backup dating BEFORE February 24, 2026 (the earliest known compromise date).
If no clean backup exists:
- Complete rebuild required – assume full server compromise
- Export content only (articles, menus, categories) – DO NOT export extensions/plugins
- Fresh Joomla installation + fresh Astroid (post-patch)
- Manually rebuild all template configurations – do not import compromised settings
Post-Recovery Security Hardening:
- Change ALL passwords (Joomla Super User, database, FTP, hosting panel)
- Enable Two-Factor Authentication on all admin accounts
- Audit user list for unauthorized administrator accounts
- Implement file integrity monitoring
PHASE 4: PREVENT REINFECTION
CRITICAL: There is NO PATCH AVAILABLE as of March 5, 2026. The vulnerability is unpatched and actively exploited.
- Keep sites OFFLINE until TemPlaza (Astroid developers) releases a security advisory
- Monitor: https://github.com/templaza/astroid-framework/security
- Monitor: https://astroidframe.work/ for announcements
- Do not re-enable sites until official patch is released and applied
Attack Timeline & Geographic Impact
| Date | Event | Severity |
|---|---|---|
| Feb 24, 2026 | First astroid_poc_fxeolugv extension spotted | 🔴 Critical |
| Mar 1, 2026 | Mass plg_system_blpayload installations begin globally | 🔴 Critical |
| Mar 3, 2026 | Swiss Joomla Forum reports 5+ compromised sites | 🔴 Critical |
| Mar 4, 2026 | Joomla Security Strike Team issues emergency shutdown alert | 🔴 Critical |
| Mar 5, 2026 | German forum confirms international attack wave | 🔴 Critical |
Confirmed Affected Regions:
- 🇨🇭 Switzerland (joomlaforum.ch)
- 🇩🇪 Germany (joomla.de)
- 🇫🇷 France (forum.joomla.fr)
- 🌍 International (reports from multiple continents)
Technical Deep Dive: Attack Mechanism
The plg_system_blpayload Malware
Based on code analysis from the Swiss Joomla Forum, this sophisticated backdoor:
// Key malicious behaviors:
1. API callback to: http://api.hacklink.pw/api/get_backlinks?url=[YOUR_SITE]
2. Auto-enables via install.php database manipulation (enabled=1, ordering=9999)
3. Injects before </body> using onAfterRender() hook
4. Supports 5 placement modes: hidden (CSS off-screen), footer, content, sidebar, multi
5. Aggressiveness levels control link density (low=30%, medium=60%, high=100%)
6. Caches spam content for 1800 seconds to reduce API calls and evade detection
Why Standard Cleaning Fails
DO NOT attempt manual file deletion because:
- Database Persistence: Plugins are registered in
#__extensionsand auto-enable - Multiple Variants:
blpayload,jcachepro, andastroid_pocwork together - Unknown Entry Vector: The vulnerability allowing installation is still unidentified and unpatched
- Reinfection Risk: Sites cleaned without patching are re-compromised within hours
- Hidden Payloads: Files in
/images/directory often bypass security scanners
Action Checklist for Site Owners
- [ ] IMMEDIATE: Take all Astroid sites offline via .htaccess/server block
- [ ] Verify Backups: Identify last clean backup (pre-Feb 24, 2026)
- [ ] Scan for IOCs: Check for blpayload, astroid_poc files
- [ ] Database Audit: Query
#__extensionsfor unauthorized entries - [ ] If Clean: Keep offline until patch released
- [ ] If Compromised: Restore clean backup or complete rebuild
- [ ] Credential Reset: Change all passwords post-recovery
- [ ] Enable 2FA: Mandatory for all Super User accounts
- [ ] File Monitoring: Implement integrity monitoring post-recovery
- [ ] Monitor Channels: Watch Astroid GitHub/website for security updates
🔗 References & Resources
Swiss Joomla Forum (Technical details, IOCs, malware code analysis):
https://joomlaforum.ch/joomla6-erweiterungen/39320-seltsame-plugins-allenfalls-gehackte-joomla-6-seiteGerman Joomla Forum (Official Joomla Security Strike Team alert):
https://forum.joomla.de/thread/23401-astroid-framework-angriffswelle/Astroid Framework Security Advisories (Awaiting official patch):
https://github.com/templaza/astroid-framework/securityAstroid Official Website:
https://astroidframe.work/Joomla Security Documentation (General hardening guidance):
https://docs.joomla.org/Security_Checklist/You_have_been_hacked_or_defacedSucuri Joomla Cleanup Guide:
https://sucuri.net/guides/how-to-clean-joomla/
⚠️ FINAL WARNING: This is an active, unpatched, widespread attack campaign targeting a zero-day vulnerability in the Astroid Framework. Any site running Astroid Framework should be considered at immediate critical risk. The only safe approach is complete site shutdown until the TemPlaza development team identifies the entry vector and releases an emergency security patch.
Last Updated: March 5, 2026
