WP Manifestindependent plugin directory
manifest / content / bangumi-list

Bangumi 追番列表 WP Registry grade D+. High-severity findings · 3 findingsWP RegistryHigh-severity findings · 3 findingsOpen the reportD+

展示追番列表的 WordPress 插件,可以在文章或页面上展示自己在 Bangumi 中在看的番剧

★ 13stars
1.1.4latest · 2 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/fhyuncai/bangumi-list/archive/refs/heads/main.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

Bangumi List for WordPress

展示追番列表的 WordPress 插件,可以在文章或页面上展示自己在 Bangumi 中在看的番剧

部分代码来自 BGM_Bangumi4WordPress

食用方法

  1. 前往 Release 下载最新版本的插件
  2. 将插件压缩包解压到 WordPress 插件目录 /wp-content/plugins/
  3. 前往 WordPress 后台启用
  4. 设置 > Bangumi 追番列表 配置相关必要信息
  5. 在文章或页面内使用短代码 [bangumi]

错误提示

  • 好像还没有填写 Bangumi ID : 后台配置面板填写 Bangumi ID
  • 好像还没有追番信息 / 追番数据消失了 : 检查是否有 在看 状态的番剧且设置为公开

Releases

7 releases.

Tag
Published
1.1.4 latest
Apr 23, 2024 2 years ago
Apr 22, 2024 2 years ago
Apr 12, 2024 2 years ago
Dec 10, 2023 2 years ago
Oct 10, 2023 3 years ago
Sep 15, 2023 3 years ago
Sep 12, 2023 3 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

Bangumi 追番列表 1.1.4 · audited by WP Registry

High-severity findings.

3 high
Audited release
1.1.4
Findings
3
Worst severity
high
Content hash
1525220e68952c56d3718f74…

Findings

  • high Authenticated (Subscriber+) plugin settings update via admin_menu with no capability check

    missing_capability

    bangumiInit is hooked to admin_menu and both registers the settings page and immediately handles POST. add_options_page is gated with manage_options, but the save/clear logic sits in the same callback with no current_user_can('manage_options'). admin_menu runs for every logged-in wp-admin request, including Subscriber visits to profile.php. A Subscriber (or any role that can load wp-admin) can POST bangumi_submit with an arbitrary bangumiID/color (and hidden isProxy) and overwrite the bangumi_list option, or POST bangumi_clear to delete the cache file. That write is the input to stored XSS in option.php and changes the public [bangumi] listing returned by getBangumiData.

    bangumi-list.php:27-91

    Recommendation

    Move save/clear handling to admin_init or the page callback, and require current_user_can('manage_options') plus check_admin_referer before any update_option/unlink. Do not process POST in admin_menu.

  • high CSRF on Bangumi settings save/clear leads to stored admin XSS

    csrf

    The settings form in option.php has no wp_nonce_field, and bangumiInit never calls wp_verify_nonce/check_admin_referer. Any site can auto-POST bangumi_submit to a logged-in user's wp-admin URL. If the victim is an administrator and the form targets options-general.php?page=bangumi_list_setting, the payload is saved during admin_menu and option.php then renders the new bangumiID/color in the same response, executing script as the administrator. If the victim is a Subscriber, the same POST still saves (missing capability) and the XSS fires later when an admin opens the settings page. Observable: bangumi_list option replaced; admin session runs attacker JavaScript.

    option.php:11-84

    Recommendation

    Add wp_nonce_field to the form and check_admin_referer in the save/clear handler. Pair with a manage_options capability check so CSRF of low-privilege users cannot write settings.

  • high Stored XSS in admin settings via unsanitized bangumiID and color

    xss_stored

    bangumiID and color are stored with stripslashes() only (no sanitize_text_field/sanitize_hex_color) into option bangumi_list. option.php prints both into HTML attribute values with echo and no esc_attr. A Subscriber or CSRF attacker can set bangumiID to e.g. "><script>/* admin AJAX */</script> or break out of the color input the same way. The sink is the manage_options settings screen; when an administrator opens Settings > Bangumi 追番列表 the script runs in the admin origin and can create users or install plugins. Frontend JSON uses json_encode + JSON.parse; color is applied via CSS setProperty (not a script sink). The privileged echo is this admin form.

    option.php:18-26

    Recommendation

    Sanitize on save (sanitize_text_field for bangumiID, sanitize_hex_color for color) and escape on output with esc_attr(). Keep capability and nonce checks on the write path so low-privilege users cannot plant payloads.

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.