I was looking at basic-info-update-2.tcl in acs 4.2 and it appears if you know a valid user_id you can change that users info. User_id is an input to the page and there is no check to see that it is either the logged in user or an admin.
I looked and the CVS head and I think the problem is mostly fixed by
ad_require_permission $user_id "write"but it seems like there should also be a check to make sure that the user_id is in fact a user_id and not some other kind of id that user might have write access to.
Would it be usefull to have a page contract filter that could do this? It might also be nice to validate attributes. Perhaps
ad_page_contract {
} {
{user_id:object.user ""}
last_name:attribute.person.last_name
}
Request notifications