WP Manifestindependent plugin directory
manifest / utilities / nextgensim

NextGenSim WP Registry grade D+. High-severity findings · 3 findingsWP RegistryHigh-severity findings · 3 findingsOpen the reportD+

WordPress Plugin for sfcir.org NextGenSim web simulation

★ 1stars
V1.0latest · 5 years ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/joshuargutierrez/nextgensim/archive/refs/heads/main.zip
Updates itself. It ships its own updater (Update URI header), so new versions appear under Dashboard → Updates.
NextGenSim WordPress Plugin for sfcir.org NextGenSim web simulation Purpose The purpose of this program is to allow SFCIR employees to be able to manually enter new characters into their NextGenSim learning tool. Versions 1.0 Installation Simply download the zip file, and install usi8ng your WordPress plugin manager in your WordPress administrator dashboard. support For bug reports and technical please feel free to contact me any time joshuarg@nmsu.edu Developer Notes 1. This program creates two custom post types (CPT), Character and Year - 'character' = [character title, year, profile, character number, insider info, goal, password] - 'year' = [year, admin password, secret password] 2. These CPTs are then used to create a list of characters for individual years - Each character can only have one year - Each year can only contain one of each character number - This allows loading all characters from the same year without repeating duplicate character numbers

Releases

2 releases.

Tag
Published
V1.0 latest
Aug 21, 2021 5 years ago
0.9
Aug 20, 2021 5 years ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.

D+ grade

Security

NextGenSim 1.0.0 · audited by WP Registry

High-severity findings.

1 high 2 medium
Audited release
1.0.0
Findings
3
Worst severity
high
Content hash
d3359fcb2692bf134e951d04…

Findings

  • high Stored XSS via unescaped character meta echoed on frontend after password auth

    xss_stored

    After a correct character or admin password, the shortcode concatenates character-title, profile, goal, and insider-info post meta into HTML with no escaping. Those fields are written from new_character.php via raw $_POST into update_post_meta. An administrator (or CSRF against admin — see related finding) who saves HTML/JS in profile fields causes script execution for every frontend user who unlocks that character. Consumer is the public shortcode output.

    nextgensim_live_page.php:71-83

    Recommendation

    Escape on output (esc_html / wp_kses_post). Sanitize on save.

  • medium Admin Add Year / Add Character forms lack CSRF nonces

    csrf

    add_year.php and new_character.php process POSTs that insert/update year and character CPTs and password meta whenever the admin page loads with POST data. Menus require manage_options and nextgensim_verify_credentials runs, but there is no wp_nonce_field / check_admin_referer. A CSRF page visited by an administrator creates years/characters or overwrites passwords and insider-info. Observable: forged POST to admin.php?page=nextgensim-add-character updates character meta.

    new_character.php:14-88

    Recommendation

    Add wp_nonce_field to forms and check_admin_referer before any write.

  • medium Character and year passwords stored and compared as plaintext post meta

    insecure_config

    Character passwords and year admin-password/secret-password are stored with add_post_meta/update_post_meta as raw strings and compared with === to $_POST on the frontend. Anyone with read access to postmeta (DB dump, compromised low-priv plugin with meta read, backups) obtains all simulation passwords. Not hashed.

    new_character.php:85-87

    Recommendation

    Store password_hash() digests and verify with password_verify(); never echo passwords into HTML.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.