skills.status could disclose secrets to operator.read clients by returning raw resolved config values in configChecks for skill requires.config paths.
openclaw (npm)<= 2026.2.132026.2.14The gateway method skills.status returned a requirements report that included configChecks[].value (the resolved value for each requires.config entry). If a skill required a broad config subtree (for example channels.discord), the report could include secrets such as Discord bot tokens.
skills.status is callable with operator.read, so read-scoped clients could obtain secrets without operator.admin / config.* access.
{ path, satisfied }).Fix commit(s):
Rotate any Discord tokens that may have been exposed to read-scoped clients.
Thanks @simecek for reporting.
Fix commits d3428053d95eefbe10ecf04f92218ffcba55ae5a and ebc68861a61067fc37f9298bded3eec9de0ba783 confirmed on main and in v2026.2.14. Upgrade to openclaw >= 2026.2.14.
{
"github_reviewed": true,
"github_reviewed_at": "2026-02-17T21:43:41Z",
"cwe_ids": [
"CWE-200"
],
"severity": "MODERATE",
"nvd_published_at": "2026-02-19T23:16:25Z"
}