The vulnerability lies in the /api/block/appendHeadingChildren endpoint, which allows a low-privilege user to modify notebook content. The root cause is an improper access control check in router.go. The route uses model.CheckAuth, which only verifies that the user is authenticated, but does not check if the user has write permissions. This allows a user with read-only privileges (RoleReader) to call the appendHeadingChildren function in api/block.go. This function, in turn, calls model.AppendHeadingChildren in model/block.go, which performs the actual modification of the notebook content. The fix would be to replace model.CheckAuth with a more restrictive middleware that checks for admin or write privileges, such as CheckAdminRole.