Medium code_pattern
Resolved · fp:vendor_premium_update_channel
2026-04-30 20:41:11 (2d ago)
| Slug | usc-e-shop |
|---|---|
| Pattern | puc_update_hijack |
| Kind | builtin |
| Version | 2.11.28 |
| 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 | unparseable |
| Url | — |
| Url host | — |
| Slug arg | — |
View raw JSON
{
"slug": "usc-e-shop",
"pattern": "puc_update_hijack",
"kind": "builtin",
"version": "2.11.28",
"hit_count": 1,
"first_hit": {
"file": "includes/update_check.php",
"line": 194,
"snippet": "$$slug = Puc_v4_Factory::buildUpdateChecker( $json_path, $fullpath, $slug );"
},
"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": "unparseable",
"url": null,
"url_host": null,
"slug_arg": null
}