The storage of CO2 in fluid-filled geological formations has been carried out for more than a decade in locations around the world. After CO2 has been injected into the aquifer and has moved laterally under the aquifer's cap-rock, density-driven convection becomes an important transport process to model. However, the challenge lies in simulating this transport process accurately with high spatial resolution and low CPU cost. This issue can be addressed by using the lattice Boltzmann equation (LBE) to formulate a model for a similar scenario when a solute diffuses into a fluid and density differences lead to convective mixing. The LBE is a promising alternative to the traditional methods of computational fluid dynamics. Rather than discretizing the system of partial differential equations of classical continuum mechanics directly, the LBE is derived from a velocity-space truncation of the Boltzmann equation of classical kinetic theory. We propose an extension to the LBE, which can accurately predict the transport of dissolved CO2 in water, as a step towards fluid-filled porous media simulations. This is achieved by coupling two LBEs, one for the fluid flow and one for the convection and diffusion of CO2. Unlike existing lattice Boltzmann equations for porous media flow, our model is derived from a system of moment equations and a Crank-Nicolson discretization of the velocity-truncated Boltzmann equation. The forcing terms are updated locally without the need for additional central difference approximation. Therefore our model preserves all the computational advantages of the single-phase lattice Boltzmann equation and is formally second-order accurate in both space and time. Our new model also features a novel implementation of boundary conditions, which is simple to implement and does not suffer from the grid-dependent error that is present in the standard "bounce-back" condition. The significance of using the LBE in this work lies in the ability to efficiently simulate density-driven convection of CO2 through water. From an implementation viewpoint, the locality of our algorithm exploits massively parallel modern computer architectures, including graphics processing units (GPUs), which would lead to very fast computations that scale linearly with the number of processors.