Entrambe le forme sono corrette.
Esiste infatti una regola (fonte: "Grammatica Italiana di Base", Zanichelli) perché dovere, potere, volere sono verbi servili:
REGOLA:
la presenza di un pronome atono prima o dopo il verbo servile determina la scelta dell’ausiliare:
- se il pronome precede l’ausiliare si usa essere: (non ci sono potuto andare)
- se il pronome segue l’infinito del verbo si usa avere: (non ho potuto andarci)
Purtroppo nell’italiano di oggi si è soliti usare verbo essere o verbo avere indistintamente, come si legge anche qui.
In questa risposta sono coinvolti i pronomi, la regola sopra riportata vale quindi SOLO in caso di presenza di pronomi.
Ho preferito adesso editare la risposta in modo da chiarire come mai sembrerebbe che nelle diverse grammatiche ci siano regole diverse e perché con i commenti la verità si perderebbe e chi legge o leggerà in futuro avrebbe difficoltà a capire a fondo:
Stiamo parlando di verbi SERVILI.
Vediamo la totalità delle regole da applicare ai verbi servili:
- possono essere usati autonomamente (voglio una pizza);
- usati assieme ad un altro verbo all’infinito possono precisarne il significato indicandone:
- dovere -> necessità (devo andare a casa);
- potere -> possibilità (posso andare a casa);
- volere -> volontà (voglio andare a casa);
- usati autonomamente prendono l’ausiliare AVERE (ho dovuto);
- quando hanno valore servile assumono l’ausiliare richiesto dal verbo che accompagnano (ho dovuto parlare, sono dovuto andare); Per quest’ultima regola, nell’italiano di oggi ha una certa diffusione l’uso indifferenziato dell’ausiliare avere (quindi anziché sono dovuto andare, nell’italiano di oggi si dice anche “ho voluto andare”.
CASI PARTICOLARI
seguiti dal verbo ESSERE o da un infinito passivo prendono l’ausiliare avere (ho dovuto essere lì);
Nei casi in cui sia richiesto l’ausiliare essere, la presenza di un pronome atono determina la scelta dell’ausiliare(e questo è il caso della domanda):
- se il pronome precede l’ausiliare si usa essere: (non ci sono potuto andare)
- se il pronome segue l’infinito del verbo si usa avere: (non ho potuto andarci).
CASI PARTICOLARI: ALTRI VERBI CHE HANNO VALORE SERVILE
i verbi sapere nel senso di “essere capace di” (so correre per 9 chilometri) e il difettivo solere (come si suol dire, Marco soleva passeggiare la sera);
i verbi fare e lasciare quando seguiti da un altro verbo all’infinito hanno valore causativo: indicano un’azione causata dal soggetto ma non compiuta direttamente da esso: ho fatto recapitare il pacco in ufficio, ti lascio lavorare.
Spero di essere stata chiara e di aver fugato ogni dubbio.