I'll assume the obvious: Alice checks $nounce_A$ deciphered from data received at step 2 before proceeding to step 3, and Bob checks $nounce_B$ deciphered from data received at step 3 before proceeding to step 4.
Including when $E$ is authenticated encryption (as stated in a comment to the question), and we suppose the origin and step number is inserted in each message encrypted in the session and verified on the receiving side (preventing replay of earlier messages in a session and limiting the impact of Ricky Demer's reflexion attack before it impacts the session itself), an imperfection remains.
A conceivable goal of the protocol could be that each party is assured that $k_s$ used during the session is uniformly random as long has $k_a$ or $k_b$ that party generated at steps 2 or 3 is uniformly random; that is part of a common definition of a key agreement protocol [which is the apparent goal of 1/2/3]; and that goal is not met, for a cheating Alice could choose $k_2=k_s\oplus k_1$.
That does not go against objectives stated in the question, but has practical significance. Rigging devices has been among the arsenal of people doing surveillance, including state-appointed agencies, for decades. From their point of view, rigging should
- work even though key material $k_{AB}$ or $k_s$ is injected or generated after the rigging takes place;
- allow passive intercepts, which are much easier to perform and less likely to be detected than active ones;
- be unlikely to be detectable by an audit; including undetectable by a check, with knowledge of the keys, that all messages exchanged are per the protocol;
- work with only one party using a rigged device [it is impractical and sometime undesirable to rig every implementation];
With the protocol as it stands, if Alice's device is rigged to generate $k_2=\operatorname{AES}_{k_M}(nounce_A)\oplus k_1$, that allows a passive interceptor knowing $k_M$ to decode a session effortlessly, while messages exchanged will appear genuine. That attack could be blocked by having Alice send a commitment of $k_2$ at step 1.
In the rest of this answer I'll assume $E$ in steps 2/3 provides confidentiality but not integrity; that's compatible with the question alone as is stands now. With that assumption, the protocol does NOT provide confidentiality of the messages sent by Bob against an active adversary Mallory.
I'll prove this with a particular example of $E$ that provides confidentiality, a block cipher such as AES in CBC mode with random IV, with $nounce$ and $k$ each of the same width as the block size. The data sent at step 2 [resp. 3] is $nounce_B\|IV_2\|C_{2.1}\|C_{2.2}$ [resp. $IV_3\|C_{3.1}\|C_{3.2}$], with $C_{2.2}=\text{AES_ENC}_{k_{AB}}(k_1\oplus C_{2.1})$ and $C_{3.2}=\text{AES_ENC}_{k_{AB}}(k_2\oplus C_{3.1})$.
Mallory monitors 1/2 without alteration, and in step 3 changes $C_{3.2}$ to $C_{3.2}'=C_{2.2}$ in the message sent by Alice to Bob. This will change $k_2$ deciphered by Bob to $k_2'=k_1\oplus C_{2.1}\oplus C_{3.1}$, thus $k_s'=k_1\oplus k_2'=C_{2.1}\oplus C_{3.1}$ used by Bob is known to Mallory.
In steps 4 and 5, Mallory acts to Bob as Alice is expected to, except that Mallory uses $k_s'=C_{2.1}\oplus C_{3.1}$, can choose at will the information allegedly sent by Alice to Bob, and gets the information Bob expects to send her confidentially.