{"id":"CVE-2026-105153","kind":"vulnerability","aliases":["CVE-2026-105153"],"related":[],"title":"Apache Roller: XXE in AtomPub lets logged-in users read server files","description":"Improper Restriction of XML External Entity Reference in Apache Roller 4.0 through 6.1.6 allows an authenticated user with no weblog permissions to read files readable by the Roller process and cause the server to issue outbound HTTP requests to attacker-chosen destinations, by submitting a crafted Atom entry to the AtomPub endpoint. The entry body is parsed with a parser configuration that permits external parameter entities and external DTD subsets, and the parse happens before any per-weblog authorization check and before any check of whether the AtomPub feature is enabled, so the endpoint is reachable by any authenticated account on a default installation. Users are recommended to upgrade to Apache Roller 6.1.7 or later, which parses AtomPub entries with a hardened XML configuration and rejects AtomPub requests while the feature is disabled.","summary":"Apache Roller parses AtomPub entries with a configuration that allows external entities, so any authenticated account can submit a crafted Atom entry. An attacker can read files the Roller process can access and make the server send outbound HTTP requests to destinations of their choosing.","severity":"high","cvss":7.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache-roller","java","package","self-hosted"],"not_affected_if":["no-authenticated-accounts","version-6.1.7-or-later"],"how_to_check":"- Check the Roller version in the deployed WAR or the `pom.xml` of the build; versions `4.0` through `6.1.6` are affected.\n- Check whether the AtomPub endpoint (`/roller-services/app/`) is reachable by authenticated users.","fix":"- Apache Roller: upgrade to `6.1.7` or later.","status":"open","published_at":"2026-11-11T13:17:12+00:00","first_seen_at":"2026-11-11T13:27:11+00:00","triaged_at":"2026-11-11T13:29:12+00:00","updated_at":"2026-11-11T13:29:12+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-11T13:29:12Z","model":"claude-haiku-5-5","output":{"fix":"- Apache Roller: upgrade to `6.1.7` or later.","reach":"internet","title":"Apache Roller: XXE in AtomPub lets logged-in users read server files","impact":"high","summary":"Apache Roller parses AtomPub entries with a configuration that allows external entities, so any authenticated account can submit a crafted Atom entry. An attacker can read files the Roller process can access and make the server send outbound HTTP requests to destinations of their choosing.","audience":"businesses","category":"package","nicknames":[],"who_cares":["apache-roller","java","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"server files readable and internal HTTP requests issued by attacker","analyst_note":"","how_to_check":"- Check the Roller version in the deployed WAR or the `pom.xml` of the build; versions `4.0` through `6.1.6` are affected.\n- Check whether the AtomPub endpoint (`/roller-services/app/`) is reachable by authenticated users.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["version-6.1.7-or-later","no-authenticated-accounts"],"who_is_affected":"Any Apache Roller installation from 4.0 through 6.1.6 is exposed, because the AtomPub parse happens before the weblog permission check and before the feature-enabled check, so any authenticated account reaches it on a default install. Sites that run Roller must check their version and upgrade; the vulnerability is reached by any user account, not only weblog owners.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.00076,"input_tokens":4739,"output_tokens":572,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-105153':16A,19A '-2026':15A,18A '4.0':83C '6.1.6':85C '6.1.7':187C 'access':59B 'account':43B,174C 'allow':37B,86C 'apach':1A,21B,28B,81C,185C 'apache-rol':20B 'atom':48B,120C 'atompub':5A,31B,124C,162C,192C,201C 'attack':51B,113C 'attacker-chosen':112C 'authent':42B,88C,173C 'author':153C 'bodi':128C 'caus':103C 'check':154C,158C 'choos':72B 'chosen':114C 'configur':35B,134C,198C 'craft':47B,119C 'cve':14A,17A 'default':177C 'destin':69B,115C 'disabl':207C 'dtd':142C 'enabl':165C 'endpoint':125C,168C 'entiti':39B,78C,139C 'entri':32B,49B,121C,127C,193C 'extern':38B,77C,137C,141C 'featur':163C,205C 'file':13A,54B,96C 'happen':147C 'harden':196C 'host':27B 'http':66B,109C 'improp':73C 'instal':178C 'issu':107C 'java':23B 'later':189C 'let':6A 'log':8A 'logged-in':7A 'make':61B 'outbound':65B,108C 'packag':24B 'paramet':138C 'pars':30B,130C,146C,191C 'parser':133C 'per':151C 'per-weblog':150C 'permiss':93C 'permit':136C 'process':57B,101C 'reachabl':170C 'read':11A,53B,95C 'readabl':97C 'recommend':181C 'refer':79C 'reject':200C 'request':67B,110C,202C 'restrict':74C 'roller':2A,22B,29B,56B,82C,100C,186C 'self':26B 'self-host':25B 'send':64B 'server':12A,63B,105C 'submit':45B,117C 'subset':143C 'upgrad':183C 'user':10A,89C,179C 'weblog':92C,152C 'whether':160C 'xml':76C,197C 'xxe':3A","nicknames":[],"mitigations":[],"who_affected":"Any Apache Roller installation from 4.0 through 6.1.6 is exposed, because the AtomPub parse happens before the weblog permission check and before the feature-enabled check, so any authenticated account reaches it on a default install. Sites that run Roller must check their version and upgrade; the vulnerability is reached by any user account, not only weblog owners.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["apacheroller","high","java","package","selfhosted"],"campaign_type":null,"search_a":"'-105153':16A,19A '-2026':15A,18A 'apach':1A 'atompub':5A 'cve':14A,17A 'file':13A 'let':6A 'log':8A 'logged-in':7A 'read':11A 'roller':2A 'server':12A 'user':10A 'xxe':3A","search_b":"'access':59B 'account':43B 'allow':37B 'apach':21B,28B 'apache-rol':20B 'atom':48B 'atompub':31B 'attack':51B 'authent':42B 'choos':72B 'configur':35B 'craft':47B 'destin':69B 'entiti':39B 'entri':32B,49B 'extern':38B 'file':54B 'host':27B 'http':66B 'java':23B 'make':61B 'outbound':65B 'packag':24B 'pars':30B 'process':57B 'read':53B 'request':67B 'roller':22B,29B,56B 'self':26B 'self-host':25B 'send':64B 'server':63B 'submit':45B","search_c":"'4.0':83C '6.1.6':85C '6.1.7':187C 'account':174C 'allow':86C 'apach':81C,185C 'atom':120C 'atompub':124C,162C,192C,201C 'attack':113C 'attacker-chosen':112C 'authent':88C,173C 'author':153C 'bodi':128C 'caus':103C 'check':154C,158C 'chosen':114C 'configur':134C,198C 'craft':119C 'default':177C 'destin':115C 'disabl':207C 'dtd':142C 'enabl':165C 'endpoint':125C,168C 'entiti':78C,139C 'entri':121C,127C,193C 'extern':77C,137C,141C 'featur':163C,205C 'file':96C 'happen':147C 'harden':196C 'http':109C 'improp':73C 'instal':178C 'issu':107C 'later':189C 'outbound':108C 'paramet':138C 'pars':130C,146C,191C 'parser':133C 'per':151C 'per-weblog':150C 'permiss':93C 'permit':136C 'process':101C 'reachabl':170C 'read':95C 'readabl':97C 'recommend':181C 'refer':79C 'reject':200C 'request':110C,202C 'restrict':74C 'roller':82C,100C,186C 'server':105C 'submit':117C 'subset':143C 'upgrad':183C 'user':89C,179C 'weblog':92C,152C 'whether':160C 'xml':76C,197C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-11T13:17:12+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","cvss_by":"security@apache.org","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-105153","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-105153","severity":null,"published_at":"2026-11-11T13:17:12+00:00","modified_at":"2026-11-11T13:17:12+00:00","first_seen_at":"2026-11-11T13:27:11+00:00","fetched_at":"2026-11-11T13:27:11+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}