TidyBot

Active installs
10
Current version
1.9.85
Added
2025-05-10
Last updated
2026-02-17 (8mo ago)
First seen by beacon
6mo ago
Total downloads
1,042

Alerts (0)

No open alerts.

Show 1 resolved alert
Medium code_pattern Resolved · fp_puc_endpoint_owned_lowinstalls 2026-10-06 12:07:40 (14d ago)
Slugtidybot
Patternpuc_update_hijack
Kindbuiltin
Version1.9.85
Hit count1
First hit
File
includes/Updates.php
Line
26
Snippet
$update_checker = PucFactory::buildUpdateChecker(
Explanationplugin 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.
Shapeunparseable
Url—
Url host—
Slug arg—
View raw JSON
{
    "slug": "tidybot",
    "pattern": "puc_update_hijack",
    "kind": "builtin",
    "version": "1.9.85",
    "hit_count": 1,
    "first_hit": {
        "file": "includes/Updates.php",
        "line": 26,
        "snippet": "$update_checker = PucFactory::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": "unparseable",
    "url": null,
    "url_host": null,
    "slug_arg": null
}
No SVN committer data yet for this plugin. Run wp beacon crawl-svn --slug=tidybot to populate.

Readme contributors (1)

Names the plugin's readme declares as contributors. A soft signal — anyone can be listed. The SVN access column is the ground-truth cross-reference: does this contributor actually commit code?

Contributor Member since SVN access Status
Daniel van der Velden 2025-02-18 — Active

Versions (10 most recent)

Release dates not yet populated — run wp beacon crawl-svn --slug=tidybot to fill them from svn ls /tags/.

Version Released Download
1.9.76 — zip
1.9.77 — zip
1.9.78 — zip
1.9.79 — zip
1.9.80 — zip
1.9.81 — zip
1.9.82 — zip
1.9.83 — zip
1.9.84 — zip
1.9.85 — zip