{"id":"CVE-2026-54676","summary":"Scoold: GET /api/posts/{id}/answers leaks private-space replies when personal API tokens are enabled","details":"Scoold is a Q&A and a knowledge sharing platform for teams. Prior to 1.69.0, users with personal API tokens can retrieve replies from questions in private spaces they cannot access because src/main/java/com/erudika/scoold/api/ApiController.java in ApiController.getPostReplies() does not apply canAccessSpace before returning data from GET /api/posts/{id}/answers. The issue is reachable when scoold.api_user_access_enabled and scoold.api_enabled are true and a token holder knows or enumerates a private question identifier. Under those conditions, the question endpoint can deny access while the answers endpoint returns the private reply bodies, exposing confidential team or project discussions. This issue is fixed in version 1.69.0.","aliases":["GHSA-2cff-ppf7-pc42"],"modified":"2026-09-19T08:08:55.336242Z","published":"2026-09-17T17:15:06.922Z","database_specific":{"cwe_ids":["CWE-862"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54676.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/Erudika/scoold/releases/tag/1.69.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54676.json"},{"type":"ADVISORY","url":"https://github.com/Erudika/scoold/security/advisories/GHSA-2cff-ppf7-pc42"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54676"},{"type":"FIX","url":"https://github.com/Erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/erudika/scoold","events":[{"introduced":"0"},{"fixed":"6976afb931d025cf0a35b11d6dff4f699dc87981"},{"fixed":"0a7e70a0b27bb69e982b23b85c3912079f8e2d6c"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.69.0"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["1.68.1","1.68.2","1.68.0","1.67.1","1.67.0","1.66.2","1.66.1","1.66.0","1.65.0","1.64.5","1.64.4","1.64.3","1.64.2","1.64.0","1.63.0","1.62.0","1.58.1","1.61.0","1.60.0","1.59.0","1.58.0","1.57.5","1.57.4","1.57.3","1.57.2","1.57.1","1.57.0","1.56.1","1.56.0","1.55.0","1.54.1","1.54.0","1.53.0","1.52.3","1.52.2","1.52.1","1.52.0","1.51.3","1.51.2","1.51.1","1.51.0","1.50.5","1.50.4","1.50.3","1.50.2","1.50.1","1.50.0","1.49.7","1.49.6","1.49.5","1.49.4","1.49.3","1.49.2","1.49.1","1.49.0","1.48.2","1.48.1","1.48.0","1.46.3","1.46.2","1.46.1","1.46.0","1.45.0","1.44.0","1.43.3","1.43.2","1.43.1","1.43.0","1.42.1","1.41.2","1.41.1","1.41.0","1.40.5","1.40.4","1.40.3","1.40.2","1.40.1","1.40.0","1.39.4","1.39.3","1.39.2","1.39.1","1.39.0","1.38.0","1.37.1","1.37.0","1.36.2","1.36.1","1.36.0","1.35.3","1.35.2","1.35.1","1.35.0","1.34.0","1.33.1","1.33.0","1.32.1","1.32.0","1.31.4","1.31.3","1.31.2","1.31.1","1.31.0","1.30.5","1.30.4","1.30.3","1.30.2","1.30.1","1.30.0","1.29.4","1.29.3","1.29.2","1.29.1","1.29.0","1.28.10","1.28.9","1.28.8","1.28.7","1.28.6","1.28.5","1.28.4","1.28.3","1.28.2","1.28.1","1.28.0","1.26.1","1.26.0","1.25.5","1.25.4","1.25.3","1.25.2","1.25.1","1.25.0","1.24.11","1.24.10","1.24.9","1.24.8","1.24.7","1.24.6","1.24.5","1.24.4","1.24.3","1.24.2","1.24.1"],"database_specific":{"vanir_signatures":[{"deprecated":false,"digest":{"line_hashes":["214140389431454320069094030877316714223","12751878573676001547197416990738175394","152861252330903965055728983293499228807","20405540369825142401175680085816172771","288870548894507329218208679061226920547","294879886540187065442309103362586705715","4593311669918234589066803275526290163","18850034403895829146662855712690930897"],"threshold":0.9},"id":"CVE-2026-54676-1c54c36e","signature_type":"Line","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981","target":{"file":"src/main/java/com/erudika/scoold/api/ApiController.java"}},{"target":{"file":"src/main/java/com/erudika/scoold/api/ApiController.java","function":"createComment"},"deprecated":false,"digest":{"function_hash":"165481369812329301252854396164116765279","length":840},"id":"CVE-2026-54676-281755f2","signature_type":"Function","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981"},{"target":{"file":"src/main/java/com/erudika/scoold/controllers/QuestionController.java","function":"reply"},"deprecated":false,"digest":{"function_hash":"43190817914938110234329890356548032510","length":2076},"id":"CVE-2026-54676-4cecd476","signature_type":"Function","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981"},{"deprecated":false,"digest":{"line_hashes":["17550532948198692495221905628059498934","11464370595746900391358888767880882617","90690254895923334610480098428829575490","3177402345970019484793057667001249734","69394473345130869121946493590238775840","126580902929930006157658488451411727587","282568049417125734116103822244709636327","315674784866505436641364522565594728715","58965679373450222669459491006643862839","188664710374987703780811828237980724869","321670819365365144693855987595054655641","183705008748981372196449485641431321972","41587435076670278801016405252995639322","307577228727934346349517374418785743400","22866988693520550182989813480540446786","258880338931032624351228864596153687776","47674073291652508213672842705123291091"],"threshold":0.9},"id":"CVE-2026-54676-5fb6538f","signature_type":"Line","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981","target":{"file":"src/main/java/com/erudika/scoold/controllers/CommentController.java"}},{"target":{"file":"src/main/java/com/erudika/scoold/controllers/CommentController.java","function":"getAjax"},"deprecated":false,"digest":{"function_hash":"335848912731711551739255629772413606198","length":514},"id":"CVE-2026-54676-65388d55","signature_type":"Function","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981"},{"deprecated":false,"digest":{"line_hashes":["215034228214247430921819603147615511563","214843655377646048164978011536923029765","141626938874582925316662978423306831340","272992723082754313239247746073517217104"],"threshold":0.9},"id":"CVE-2026-54676-9e58b8db","signature_type":"Line","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981","target":{"file":"src/main/java/com/erudika/scoold/controllers/QuestionController.java"}},{"signature_type":"Function","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981","target":{"file":"src/main/java/com/erudika/scoold/api/ApiController.java","function":"getPostReplies"},"deprecated":false,"digest":{"function_hash":"182241001225813342877959525579162436715","length":353},"id":"CVE-2026-54676-b3ca302e"},{"target":{"file":"src/main/java/com/erudika/scoold/controllers/CommentController.java","function":"get"},"deprecated":false,"digest":{"function_hash":"194385450352719297558837378803343391825","length":405},"id":"CVE-2026-54676-d4574bc7","signature_type":"Function","signature_version":"v1","source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981"},{"source":"https://github.com/erudika/scoold/commit/6976afb931d025cf0a35b11d6dff4f699dc87981","target":{"file":"src/main/java/com/erudika/scoold/controllers/CommentController.java","function":"createAjax"},"deprecated":false,"digest":{"function_hash":"270551519006884896435842814601648634026","length":1004},"id":"CVE-2026-54676-e3f731c7","signature_type":"Function","signature_version":"v1"}],"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54676.json","vanir_signatures_modified":"2026-09-19T08:08:55Z"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"}]}