How is the re-encryption done in Path ORAM? Path ORAM block headers store nonce that is used to re-encrypt the data on access. Every time a block is accessed, the nonce is updated.

If the header itself is encrypted, how's the decryption done when the block is fetched next time?

If the header itself is NOT encrypted, isn't it trivial for an attacker to recover the nonce from the header and decrypt it, thereby beating the purpose of ORAM?
Client holds a secret key, which is used to encrypt/decrypt all blocks.  Nonce is not used as a key but randomness to make sure that all the blocks, no matter updated or not, will look fresh.