GHSA-g478-vjq4-75hf: 
PHP Análisis y mitigación de vulnerabilidades

Summary

The public GraphQL read queries of the blog module don't check publication state, store view or authorization. A request without any token can read content that the storefront itself hides.

Details

blogPosts only applies the filters the client sends. It never forces status = published or the current store view, so it returns every row in mageos_blog_post: drafts, scheduled posts, archived posts and posts assigned only to another store view. Each item includes the full content, the meta fields and the status. A client can also ask for the hidden rows on purpose with filter: { status: ... }. blogPost(id: ...) has the same gap. blogPost(url_key: ...) is scoped to the current store view, but it doesn't check the status either, so a draft is readable as soon as its URL key is known or guessed. blogCategories, blogCategory, blogTags, blogTag, blogAuthors and blogAuthor have the same gap for inactive entities. Categories and tags that belong only to another store view are returned too. The nested categories, tags and author fields on a post don't check whether the entity is active. The resolvers also never look at the blog's enabled setting, so a store that installed the module but hasn't switched the blog on (the default) is exposed as well. The create, update and delete mutations already require admin authorization and aren't affected. The storefront pages, the RSS feed, the sitemap and the search results check the post status, so the problem is limited to the GraphQL API. There's no REST API in the module.

Impact

Unauthenticated information disclosure. Unpublished content (drafts, scheduled announcements, archived posts) and content meant for a different store view can be read by anyone who can reach /graphql. There's no integrity or availability impact.

Patches

Fixed in 1.4.4. The list and detail queries now return only what the storefront shows: published posts, and active categories, tags and authors, restricted to the current store view. An admin token with the matching ACL resource (MageOS_Blog::post, MageOS_Blog::category, MageOS_Blog::tag, MageOS_Blog::author) can still read everything.

Workarounds

There's no configuration switch. Until you can update, block GraphQL requests that select the blogPost, blogPosts, blogCategory, blogCategories, blogTag, blogTags, blogAuthor or blogAuthors fields at the web server or WAF, or disable the module with bin/magento module:disable MageOS_Blog.


Fuente: NVD

Relacionado PHP Vulnerabilidades:

CVE ID

Gravedad

Puntuación

Tecnologías

Nombre del componente

Exploit CISA KEV

Tiene solución

Fecha de publicación

GHSA-25rf-99hr-7pmrHIGH8.1
  • PHP logoPHP
  • codeigniter4/framework
NoSíNov 01, 2026
GHSA-rgjx-wcgv-pw7gHIGH7.5
  • PHP logoPHP
  • adminneo-org/adminneo
NoSíNov 01, 2026
GHSA-ggh8-3chg-48w7HIGH7.2
  • PHP logoPHP
  • adminneo-org/adminneo
NoSíNov 01, 2026
GHSA-g478-vjq4-75hfMEDIUM5.3
  • PHP logoPHP
  • mage-os/module-blog
NoSíNov 02, 2026
GHSA-q5vv-mh5m-fxvmMEDIUMN/A
  • PHP logoPHP
  • adminneo-org/adminneo
NoSíNov 01, 2026

Evaluación gratuita de vulnerabilidades

Haz un benchmark de tu postura de seguridad en la nube

Evalúa tus prácticas de seguridad en la nube en 9 dominios de seguridad para evaluar tu nivel de riesgo e identificar brechas en tus defensas.

Evaluación de solicitudes

Recursos adicionales de Wiz

Obtén una demostración personalizada

¿Listo para ver a Wiz en acción?

"La mejor experiencia de usuario que he visto en mi vida, proporciona una visibilidad completa de las cargas de trabajo en la nube."
David EstlickCISO
"Wiz proporciona un panel único para ver lo que ocurre en nuestros entornos en la nube."
Adam FletcherJefe de Seguridad
"Sabemos que si Wiz identifica algo como crítico, en realidad lo es."
Greg PoniatowskiJefe de Gestión de Amenazas y Vulnerabilidades