The best generic attack for a block cipher is one that, for a fixed key, builds a dictionary of input/output pairs (e.g. from past plaintext/ciphertext). When an input or output in that dictionary gets reused, the adversary gains an advantage.
Such attack works for any block cipher, including an hypothetical one implemented as a random permutation.