Heat the olive oil in a large pot over medium heat. Add the onion, carrots, and celery and cook for 5 minutes until the vegetables begin to soften.
Stir in the garlic, zucchini, and butternut squash. Cook for another 3 minutes.
Add the diced tomatoes, vegetable broth, cannellini beans, pasta, oregano, salt, and pepper. Bring the mixture to a simmer.
Cook for 10 to 12 minutes, stirring occasionally, until the pasta is tender and the squash is cooked through.
Turn off the heat and stir in the spinach until it wilts.
Ladle the soup into bowls and top each serving with a few fresh basil leaves.