6 versions
Userpro – User Profiles With Social Login history.
Every release of Userpro – User Profiles With Social Login is archived here with its changelog, file size, and security scan result. Use the archive to roll back to a stable release or audit what changed between updates.
4 of 6 releases scanned clean
v5.1.16Latest
October 6, 20268.7 MBScanned
Security release. Full detail in `changelog.txt`.
- Security: Privilege escalation (CVSS 9.8, Patchstack 2026-10-06). A guest registration could overwrite the new account's `wp_capabilities` row by posting a field name containing a Unicode homoglyph in place of an ASCII letter. MySQL's accent-insensitive `meta_key` collation matched the homoglyph key to the real `wp_capabilities` row; the `remove_accents()` denylist did not cover all characters in that equivalence class. Fixed in two layers: (1) `functions/ajax.php` now applies `sanitize_key()` to every POST key when building `$form`, stripping non-ASCII bytes before they reach `update_user_meta()`; (2) `functions/user-functions.php` now rejects any meta key containing non-ASCII bytes and uses `sanitize_key()` for the capabilities/user_level check, as defense-in-depth for all callers. (`functions/ajax.php`, `functions/user-functions.php`)
October 2, 20268.7 MBScanned
Stability fix. Full detail in `changelog.txt`.
- Stability: PHP warning "Attempt to read property 'post_name' on null" on archive pages, 404s, and any non-single-post context is now suppressed. `get_post()` returns null on these pages and the title filter was reading `$post->post_name` without a null guard. The warning appeared in the site header on any page where UserPro was active but no post was in context. (`functions/hooks-actions.php`)
September 12, 20268.7 MBScanned
Other
- Security and stability release. Full detail in `changelog.txt`.
- Security: SQL injection in the front-end publish flow (`functions/ajax.php`) and in the badges comment-count query, both now prepared.
- Security: self-service profile saves can no longer write trust/status meta (`userpro_verified`, account status, connections, secret key, badges, social ids); filter `userpro_protected_profile_meta`, compared case-insensitively. Role changes via profile save require `promote_users`.
- Security: `userpro_reset_option` and `userpro_user_invite` now require `manage_options` (were reachable by logged-out visitors via the public nonce).
- Security: `userpro_crop_picupload` requires a nonce and escapes its output; the front-end script now sends the nonce.
- Packaging: bundled `cacert.pem` files restored; `build-zip.py` guarantees a `userpro/` top-level folder (the previous upload unpacked to `userpro-main/` and installed as a second plugin).
Fixed
- custom-field member directory sort now sorts and paginates in SQL; malformed `userp`/`emd-page`/`searchuser` input no longer fatals on PHP 8.
- Enhanced Member Directory and collage use a COUNT query; badge user pickers show emails again; admin version label corrected.
v5.1.13Unavailable
August 15, 20268.9 MBScanned
Other
- Remaining 7 unbounded query locations patched. All 9 originally identified issues now resolved.
- *`functions/memberlist-functions.php` — member directory**
- `:440` Custom-field sort keys were excluded from the `number`/`offset` block, leaving the main directory query unlimited when sorted by a custom field. Fixed: pagination always applied regardless of sort key.
- `:448` Filtered/search result pagination used `number=>10000` to count matching users. Fixed: `WP_User_Query` with `count_total=true`, `fields='ID'`, `number=1`. One COUNT, zero rows.
- *`addons/badges/admin/admin-functions.php` — Badges admin**
- `:83` `userpro_badges_admin_users()` fetched full `WP_User` objects for all users. Fixed: `fields=>['ID','user_login']`, capped at 500 via `userpro_badges_admin_users_limit` filter.
- `:166` "Delete badge from all users" hydrated full `WP_User` objects before the per-user write loop. Fixed: `fields=>'ID'` only.
- *`admin/panels/requests.php` and `addons/requests/admin/panels/settings.php` — User Requests panels**
- Both pending-user count badges (header ` `) now use a single `WP_User_Query` COUNT instead of fetching all pending users. Display lists capped at 200 rows. The `pending_admin` section in `settings.php` already had pagination; `pending` section now bounded.
- *`admin/admin.php`**
Removed
- dead `get_pending_verify_requests_count()` (zero callers; unbounded duplicate of the already-patched function in the requests addon).
v5.1.11Unavailable
September 4, 20259.7 MB
Other
- ==================================
- Security fix.
- ==================================
Fixed
- Issue that caused settings tabs to not display in the UserPro settings page.
v5.1.10Unavailable
September 4, 20259.0 MB
Other
- ==================================
- Security fix.
- ==================================
Fixed
- Register shortcode register_redirect fix.
- Register Ajax error.
- Saving Groups & Fields undefined key warning fix.
- Error while viewing followers.
Why archive
Sometimes the latest release isn't the one you need. The archive lets you pin Userpro – User Profiles With Social Login to a known-good version, or roll back while a bug is investigated. Every release stays scanned and reachable.