The real story in CVE-2026-72806 isn't the missing filter on renderAttributeView — it's that a security filter existed at all and still failed to cover an entire rendering path. SiYuan's FilterViewByPublishAccess was applied to some endpoints but not others, exposing password-protected attribute views to unauthenticated access while the UI implied protection existed. Document titles, block IDs, and column values from password-protected databases were retrievable without credentials.

This is a textbook retrofitted access control failure. The developers recognized attribute views needed access control, built the filter, and attached it to whatever endpoints were visible during review — likely the primary rendering path. Meanwhile, renderAttributeView operated silently without it, probably added as a separate feature path by a different contributor or under different constraints. The filter got applied around features rather than across the API surface, which is a structural process gap: security controls attached to individual endpoints rather than enforced at a centralized layer.

Check your SiYuan instance immediately: if publish functionality is enabled and any attribute views have password protection configured, assume that content was accessible without authentication. The CVSS 5.8 score undersells the operational risk — users who bother with password protection on a personal knowledge base are precisely the users with sensitive accumulated content. The EPSS score being low likely reflects limited enumeration of this specific endpoint, not actual exploitability.

The fix patches this endpoint, but the process vulnerability persists. Audit whether your deployment has other rendering endpoints (database rows, graph views, exports) that bypass access controls. If SiYuan lacks a centralized access control registry where all public-facing endpoints are declared and verified, this pattern will recur. The architectural remediation: require security annotations on new rendering endpoints with static analysis verifying coverage, otherwise you're patching one hole while the next blind spot awaits.