This isn't necessarily a leak. Linux 2.6 caches access to non-volatile block devices (like hard disks) in unused memory where possible, which is why your buffer memory is going up. In effect, it uses free RAM as an additional hardware cache to speed up the hard disks.
If you are running the vanilla Red Hat 9 kernel, then it's very unlikely that a kernel bug like that would go unfixed for long; try installing any available kernel updates.
Note also that once memory has been moved from the free store to a process's heap, it can't be moved back unless the process re-execs itself (most daemons do this every few hours for that reason). So it's also not uncommon for memory to go up slightly as daemons are running; it should go down slightly again if you leave it for long enough.
You say it runs out of memory very quickly; could you please be more specific? What daemons (services) are you running, how much memory and swap space do you have, and how long is it taking for the memory to run out? Is it just RAM that is running out, or swap space as well?