On Tue, Dec 22, 2015 at 04:52:23PM -0600, oleg yusim wrote: > Greetings, > > I'm looking at the following security control right now: > > The DBMS must prevent unauthorized and unintended information transfer via > shared system resources. > > The purpose of this control is to prevent information, including encrypted > representations of information, produced by the actions of a prior user/role > (or the actions of a process acting on behalf of a prior user/role) from being > available to any current user/role (or current process) that obtains access to > a shared system resource (e.g., registers, main memory, secondary storage) > after the resource has been released back to the information system. Control of > information in shared resources is also referred to as object reuse. > > From previous discussions, I understood that session in PostgreSQL is closely > associated with process, and it is essentially new process for every user > connection. In regards to that, my question would be: > > When user disconnects, process is terminated and all resources are released, > does memory, session/process stored information at gets "sanitized" or just > released as is? On Linux the memory pages of an exiting process aren't sanitized at exit, however it is impossible(?) for userspace to reallocate them without the kernel first zeroing their contents. It might be possible for root to use some debugging mechanisms to access the freed memory, but certainly there is no mechanism for a non-root user to do so. Regarding PG in particular, I can't speak for any shared internal state that might be maintained after a session has exitted (e.g. in the SHM regions PG maintains). Since that state lives longer than an individual process, it's possible some information leakage could occur that way, but "object reuse", it seems doubtful. David -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general