Heat the olive oil in a large soup pot over medium heat. Add the onion, salt, and pepper. Cook for 6–8 minutes, stirring occasionally, until softened.
Add the garlic and sage. Stir for 30 seconds, then add the squash and broth.
Bring to a boil over medium-high heat. Reduce to low, cover, and simmer gently for 25–30 minutes, until the squash crushes easily with a fork.
Stir in the beans and simmer uncovered for 5 minutes.
Remove from the heat. Use an immersion blender, keeping its blade submerged, to blend until smooth. Stir in the vinegar. If needed, thin with water, 1/4 cup at a time.
Taste and adjust the salt and pepper. Return to low heat briefly if needed, then divide among four bowls.