WP Manifestindependent plugin directory
manifest / content / uri-rss-reader

URI RSS Reader WP Registry grade D+. High-severity findings · 4 findingsWP RegistryHigh-severity findings · 4 findingsOpen the reportD+

A plugin to display a list of posts from an RSS feed

★ 1stars
596composer installs
v1.2.3latest · 1 year 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/uriweb/uri-rss-reader/archive/refs/heads/develop.zip

On Packagist as uriweb/uri-rss-reader:

composer require uriweb/uri-rss-reader
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

The URI RSS Reader plugin displays an RSS news feed via a shortcode.

What's New in 1.2.3?

This release fixes an error in PHP 8.3.

How do I use the shortcode?

Paste the shortcode into a page to display the news feed.

Parameters:

url

The url of the rss feed. \ default: null \ Ex: [uri-rss-reader url="https://www.uri.edu/news/tag/college-of-arts-and-sciences/feed"]

display

How many posts to display.\ default: 20 \ Ex: [uri-rss-reader url="{url}" display="5"]

exclude

Any posts to exclude from display. \ default: null \ Ex: [uri-rss-reader url="{url}" exclude="{first_url}, {second_url}"]

cache

Cache time-out. \ default: 1 hour \ Ex: [uri-rss-reader url="{url}" cache="30 minutes"]

include_excerpt

Display the excerpt. \ default: true \ Ex: [uri-rss-reader url="{url}" include_excerpt="false"]

include_date

Display the date. \ default: true \ Ex: [uri-rss-reader url="{url}" include_date="false"]

include_image

Display the thumbnail image. \ default: true \ Ex: [uri-rss-reader url="{url}" include_image="false"]

style

Choose a display style: "default" or "ticker".
Note: The "ticker" style doesn't display the date or excerpt. It only displays 3 headlines. \ default: "default" \ Ex: [uri-rss-reader url="{url}" style="ticker"]

title

Title for the ticker style. \ default: 'Latest News' \ Ex: [uri-rss-reader url="{url}" style="ticker" title="Research News"]

heading level

Heading level for the title on the ticker style. \ default: 2 \ Ex: [uri-rss-reader url="{url}" style="ticker" title="Research News" heading_level="3"]

Plugin Details

devDependencies Status

URI RSS Reader Plugin
An RSS reader plugin that displays a news feed via shortcode.

Contributors: Alexandra Gauss \ Tags: plugins
Requires at least: 4.0
Tested up to: 6.7.2
Stable tag: 1.2.3

Releases

6 releases.

Tag
Published
v1.2.3 latest
May 13, 2025 1 year ago
Apr 23, 2025 1 year ago
Mar 20, 2025 1 year ago
Mar 19, 2025 1 year ago
Mar 4, 2025 1 year ago
Feb 11, 2025 1 year 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

URI RSS Reader 1.2.3 · audited by WP Registry

High-severity findings.

2 high 1 medium 1 low
Audited release
1.2.3
Findings
4
Worst severity
high
Content hash
d4d632c253ceb3b55891bfac…

Findings

  • high Stored XSS via unescaped RSS item fields in shortcode output

    xss_stored

    uri_rss_reader_display prints feed item title, link, description, date, and media thumbnail URL/alt with raw print/echo. A contributor/author who embeds [uri-rss-reader url="https://attacker/feed"] (or an admin embedding a compromised feed) causes visitor browsers to execute attacker HTML/JS when the page renders. Cache stores the parsed array, so the XSS persists for the cache TTL.

    inc/uri-rss-reader-parse.php:145-173

    Recommendation

    Escape all feed fields: esc_url for URLs, esc_attr for attributes, wp_kses_post/esc_html for text. Consider stripping HTML from remote descriptions entirely.

  • high Stored XSS via unescaped shortcode attributes (heading_level/title/before)

    xss_stored

    Shortcode attributes title, heading_level, before, and after are printed raw. heading_level is concatenated into an HTML tag name (h{$heading_level}), enabling tag breakout. Users who can place shortcodes (authors/editors; contributors on some setups) can inject markup into front-end pages.

    inc/uri-rss-reader-parse.php:114-121

    Recommendation

    Allowlist heading_level to digits 1-6, escape title with esc_html, and do not accept raw HTML before/after attributes (or kses them).

  • medium Shortcode render updates site option without capability check

    missing_capability

    Every shortcode render calls update_site_option('uri_rss_reader_recency', $attributes['cache']). Any user who can publish content containing the shortcode can change this network/site option that controls feed cache lifetime, enabling cache-busting or forcing frequent remote fetches (DoS/SSRF amplification via wp_safe_remote_get).

    inc/uri-rss-reader-shortcode.php:250-251

    Recommendation

    Store cache TTL in a request-local variable or post meta; do not write site options from a front-end shortcode path.

  • low Unescaped error messages from wp_remote failures

    missing_escaping

    uri_rss_reader_get_xml echoes WP_Error messages and status codes without escaping when feeds fail, which can reflect unexpected content into the page.

    inc/uri-rss-reader-parse.php:299-306

    Recommendation

    Use esc_html on error output or return errors to the shortcode buffer instead of echoing.

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.