SpeedyGo

speedy-go · by codeandcore · wordpress.org ↗ · SVN ↗
Active installs
100
Current version
2.1.17
Added
2025-10-29
Last updated
2026-09-03 (9d ago)
First seen by beacon
4mo ago
Total downloads
3,615

Statistics

2025-10-29 → 2026-09-09 · 286 days
Downloads today
13
7-day total 266
Week over week
▼ -8%
vs prior 7 days
30-day trend
flat
▲ +68% MoM
Abandonment
●○○○○
install base on one version
Downloads/day Linear trend
148111743702025-102025-122026-012026-032026-052026-062026-09
148111743702026-052026-052026-062026-062026-072026-08
148111743702026-072026-082026-082026-082026-082026-09

Active versions

2.1
2.1 · 100.0%

Ratings

5★
1
4★
0
3★
0
2★
0
1★
0

Support: 0/0 resolved

Historical audits (1)

Past investigations, all resolved. No current threat.
  • Suspicious Audit #34 baseline 2.0.3 → head 2.1.0 4mo ago

Alerts (0)

No open alerts.

Show 4 resolved alerts
Critical code_scan_delta Resolved · fp_safe_unserialize_allowed_classes_false 2026-07-12 19:31:54 (2mo ago)
Slugspeedy-go
Previous version2.1.4
Current version2.1.8
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinincludes/api-key-api.php317L309: $resbody = wp_remote_retrieve_body($response); → L317: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)high
New finding count1
View raw JSON
{
    "slug": "speedy-go",
    "previous_version": "2.1.4",
    "current_version": "2.1.8",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/api-key-api.php",
            "line": 317,
            "snippet": "L309: $resbody = wp_remote_retrieve_body($response);  \u2192  L317: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)",
            "confidence": "high"
        }
    ],
    "new_finding_count": 1
}
Critical code_scan_delta Resolved · known_audit34_speedygo_continuation 2026-07-02 04:08:56 (2mo ago)
Slugspeedy-go
Previous version2.1.1
Current version2.1.3
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinincludes/api-key-api.php304L296: $resbody = wp_remote_retrieve_body($response); → L304: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)high
New finding count1
View raw JSON
{
    "slug": "speedy-go",
    "previous_version": "2.1.1",
    "current_version": "2.1.3",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/api-key-api.php",
            "line": 304,
            "snippet": "L296: $resbody = wp_remote_retrieve_body($response);  \u2192  L304: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)",
            "confidence": "high"
        }
    ],
    "new_finding_count": 1
}
Critical code_pattern Resolved · fp_safe_unserialize_allowed_classes_false 2026-06-06 05:51:09 (3mo ago)
Slugspeedy-go
Patternunserialize_after_remote_call
Kindbuiltin
Version2.1.1
Hit count1
First hit
File
includes/api-key-api.php
Line
298
Snippet
L290: $resbody = wp_remote_retrieve_body($response); → L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)
Explanationa remote HTTP fetch (`wp_remote_*` / `curl_exec`) is followed by `@unserialize` within the same file — classic PHP Object Injection C2 gadget. The error-suppressed form is the tell: legit code wants to know when deserialize fails; attackers suppress so malformed gadgets do not leak. A real finding regardless of author intent: any plugin that deserializes remote responses without validation is a latent RCE chain if the remote endpoint is ever compromised.
View raw JSON
{
    "slug": "speedy-go",
    "pattern": "unserialize_after_remote_call",
    "kind": "builtin",
    "version": "2.1.1",
    "hit_count": 1,
    "first_hit": {
        "file": "includes/api-key-api.php",
        "line": 298,
        "snippet": "L290: $resbody = wp_remote_retrieve_body($response);  \u2192  L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)"
    },
    "explanation": "a remote HTTP fetch (`wp_remote_*` / `curl_exec`) is followed by `@unserialize` within the same file \u2014 classic PHP Object Injection C2 gadget. The error-suppressed form is the tell: legit code wants to know when deserialize fails; attackers suppress so malformed gadgets do not leak. A real finding regardless of author intent: any plugin that deserializes remote responses without validation is a latent RCE chain if the remote endpoint is ever compromised."
}
Critical code_scan_delta Resolved · fp_safe_unserialize_allowed_classes_false 2026-06-06 02:05:00 (3mo ago)
Slugspeedy-go
Previous version2.1.0
Current version2.1.1
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinincludes/api-key-api.php298L290: $resbody = wp_remote_retrieve_body($response); → L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)high
New finding count1
View raw JSON
{
    "slug": "speedy-go",
    "previous_version": "2.1.0",
    "current_version": "2.1.1",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "includes/api-key-api.php",
            "line": 298,
            "snippet": "L290: $resbody = wp_remote_retrieve_body($response);  \u2192  L298: while (is_string($opts) && @unserialize($opts, ['allowed_classes' => false]) !== false)",
            "confidence": "high"
        }
    ],
    "new_finding_count": 1
}

SVN committers (2)

Accounts with actual commit access to speedy-go on plugins.svn.wordpress.org, reconstructed from svn log. This is the list that matters for ownership changes — not the readme contributors.

Committer Member since Commits First commit Latest commit
Code and core 2024-04-24 37 2025-10-29 · r3386469 2026-09-03 · r3679938
plugin-master 2007-03-09 1 2025-10-29 · r3386438 2025-10-29 · r3386438

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
Code and core 2024-04-24 37 commits Active

Versions (24 most recent)

Version Released Download
2.1.17 zip
2.1.12 zip
2.1.13 zip
2.1.14 zip
2.1.15 zip
2.1.16 zip
2.1.9 zip
2.1.10 zip
2.1.11 zip
2.1.5 zip
2.1.6 zip
2.1.7 zip
2.1.8 zip
2.1.4 zip
2.1.2 zip
2.1.3 zip
2.1.1 2026-05-25 · 3mo ago zip
2.1.0 2026-05-04 · 4mo ago zip
2.0.3 2026-03-16 · 6mo ago zip
2.0.2 2026-03-10 · 6mo ago zip
2.0.1 2026-03-03 · 6mo ago zip
2.0.0 2026-03-03 · 6mo ago zip
1.0.1 2026-02-24 · 6mo ago zip
1.0.0 2025-10-29 · 10mo ago zip