Yes; in fact, $\rho$ is both separable and pure.
We can start by writing any state $\rho$ in its eigenbasis
$$\rho=\sum_i p_i|\psi_i\rangle\langle\psi_i|,$$ where $p_i$ are probabilities (i.e., positive and sum to unity) and $|\psi_i\rangle$ are pure states that may or may not be entangled.
If $\rho$ is bipartite, each eigenstate $|\psi_i\rangle$ is bipartite. The partial trace is linear, so we can write
$$\rho^A=\sum_i p_i \mathrm{Tr}_B\left(|\psi_i\rangle\langle\psi_i|\right)$$
and
$$\rho^B=\sum_i p_i \mathrm{Tr}_A\left(|\psi_i\rangle\langle\psi_i|\right).$$ Each component $\sigma^A_i=\mathrm{Tr}_B\left(|\psi_i\rangle\langle\psi_i|\right)$ and $\sigma^B_i=\mathrm{Tr}_A\left(|\psi_i\rangle\langle\psi_i|\right)$ is a density operator that may or may not be pure.
Next, convexity works its magic. $\rho^A$ is a convex combination of density matrices $\sigma^A$; to be pure overall, all of the components in the convex combination must be parallel. We can see this by writing the purity as
\begin{align}\mathrm{Tr}(\rho^{A\,2})=\sum_{i,j}p_{i}p_j \mathrm{Tr}\left(\sigma_i^A\sigma_j^A\right)\leq \sum_{i,j}p_{i}p_j \sqrt{\mathrm{Tr}\left(\sigma_i^{A\,2})\mathrm{Tr}(\sigma_j^{A\, 2}\right)}\leq 1,
\end{align} where the first inequality is saturated if and only if $\sigma_i^A\propto \sigma_j^A$ for all $i$ and $j$. The second inequality is saturated if and only if each $\sigma_i^A$ is pure, so we see that all of the $\sigma_i^A$ must be pure and equal.
Now that we know that $\sigma_i^A$ is pure, and we also know that $\sigma_i^A$ comes from the partial trace of a pure state, we conclude that each eigenstate $|\psi_i\rangle$ must be separable. Since each $\sigma_i^A= \rho^A\equiv|\phi^A\rangle\langle\phi^A|$ is the same, we can write each $|\psi_i\rangle$ in the form (note that the component on subsystem $A$ is always the same but that the component on subsystem $B$ may change with the index $i$)
$$|\psi_i\rangle=|\phi^A\rangle\otimes|\phi^B_i\rangle\quad \Leftrightarrow\quad |\psi_i\rangle\langle\psi_i|=\rho^A \otimes |\phi^B_i\rangle\langle\phi^B_i|.$$ This means that we can write the original state as $$\rho=\sum_i p_i \rho^A \otimes |\phi^B_i\rangle\langle\phi^B_i| = \rho^A \otimes \sum_i p_i|\phi^B_i\rangle\langle\phi^B_i|= |\phi^A\rangle\langle\phi^A| \otimes \sum_i p_i|\phi^B_i\rangle\langle\phi^B_i|.$$
Awesome! So we learn from the condition that $\rho^A$ is pure that the overal state must be separable and that the component in subsystem $A$ must always be pure. Using the same condition from $\rho^B$ being pure, we could have concluded that
$$\rho=\left(\sum_i p_i|\phi^A_i\rangle\langle\phi^A_i|\right)\otimes |\phi^B\rangle\langle\phi^B|.$$ Putting both of these conditions, we conclude that
$$\rho=|\phi^A\rangle\langle\phi^A|\otimes |\phi^B\rangle\langle\phi^B|=\rho^A\otimes\rho^B.$$