Sharp edges, like the ones from a cube, don't get nicely with a single averaged normal per vertex. So Assimp is probably duplicating vertices (4 verts per face, 6 faces per cube, 24 verts in total) of each face and computing normals accordingly (ie, all 4 verts of a cube face have orthogonal normals to that face instead of averaging them all).
You can probably find more info in Google about how to deal with sharp meshes normals and smooth meshes normals. The method of averaging surrounding triangle normals to get a single vertex normal out of them works on the assumption that the real surface is smooth, and that you're working with a more "blocky" approximation of it. When your geometry actually represents the real surface you're trying to emulate, in this case a cube, that assumption no longer holds on and it screws up lighting calculations.