Critical code_pattern
Resolved · vendor_self_update_wpopal
2026-05-08 09:56:54 (1mo ago)
| Slug | opal-woo-custom-product-variation |
|---|---|
| Pattern | puc_update_hijack |
| Kind | builtin |
| Version | 1.3.5 |
| Hit count | 1 |
| First hit |
|
| Explanation | plugin calls `::buildUpdateChecker()` — the factory entry point of the Yahnis Elsts Plugin Update Checker library. A plugin distributed through wordpress.org that registers its own update source is bypassing the Plugin Review Team: every install polls the non-wp.org URL on cron and installs whatever JSON + zip it returns, with full plugin-author permissions. This is the mechanism behind the `anadnet`/quick-pagepost-redirect-plugin compromise (2021) where the author seeded 70,000+ installs through tagged releases and then removed the library from trunk to hide the persistence. Any URL argument pointing away from `downloads.wordpress.org`/`api.wordpress.org` is the hijack signal. |
| Shape | hijack |
| Url | http://source.wpopal.com/plugins/opal/opal-woo-custom-product-variation.json |
| Url host | source.wpopal.com |
| Slug arg | opal-woo-custom-product-variation |
View raw JSON
{
"slug": "opal-woo-custom-product-variation",
"pattern": "puc_update_hijack",
"kind": "builtin",
"version": "1.3.5",
"hit_count": 1,
"first_hit": {
"file": "opal-woo-custom-product-variation.php",
"line": 65,
"snippet": "Puc_v4_Factory::buildUpdateChecker("
},
"explanation": "plugin calls `::buildUpdateChecker()` \u2014 the factory entry point of the Yahnis Elsts Plugin Update Checker library. A plugin distributed through wordpress.org that registers its own update source is bypassing the Plugin Review Team: every install polls the non-wp.org URL on cron and installs whatever JSON + zip it returns, with full plugin-author permissions. This is the mechanism behind the `anadnet`/quick-pagepost-redirect-plugin compromise (2021) where the author seeded 70,000+ installs through tagged releases and then removed the library from trunk to hide the persistence. Any URL argument pointing away from `downloads.wordpress.org`/`api.wordpress.org` is the hijack signal.",
"shape": "hijack",
"url": "http://source.wpopal.com/plugins/opal/opal-woo-custom-product-variation.json",
"url_host": "source.wpopal.com",
"slug_arg": "opal-woo-custom-product-variation"
}