How can a session be blocked by an session that is idle?
It would appear the idle session has a lock on at least one record required by the blocked query.  The user has already executed a query that acquired a lock.  Normally the lock will be held until they commit or rollback the transaction.  

I've run into this a few times when a developer went for lunch while in the middle of updating or inserting data.  The lock was removed shortly after they returned from lunch.

If their session times out or you kill their session, the transaction should rollback and release the lock.

If you can determine what location they are connected from you may be able to contact them and request they commit or rollback their transaction.